From 08c8bb5feb1392a7584f15e5cd8e57d79f7b401e Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Sat, 22 Jun 2024 22:56:56 +0000 Subject: [PATCH] build based on e61fb68 --- dev/404.html | 8 +- dev/UserGuide/chunk.html | 16 ++-- dev/UserGuide/combine.html | 16 ++-- dev/UserGuide/compute.html | 34 +++---- dev/UserGuide/convert.html | 52 +++++----- dev/UserGuide/create.html | 16 ++-- dev/UserGuide/faq.html | 18 ++-- dev/UserGuide/group.html | 24 ++--- dev/UserGuide/read.html | 16 ++-- dev/UserGuide/select.html | 16 ++-- dev/UserGuide/types.html | 16 ++-- dev/UserGuide/write.html | 18 ++-- dev/api.html | 24 ++--- ...XYcf.js => UserGuide_chunk.md.Ii5YZi0L.js} | 2 +- ...js => UserGuide_chunk.md.Ii5YZi0L.lean.js} | 2 +- ...GC.js => UserGuide_combine.md.D-hnw42r.js} | 2 +- ... => UserGuide_combine.md.D-hnw42r.lean.js} | 2 +- ...R3.js => UserGuide_compute.md.9OcrDvwn.js} | 20 ++-- ... => UserGuide_compute.md.9OcrDvwn.lean.js} | 2 +- ...C9.js => UserGuide_convert.md.V3ot1yUx.js} | 38 ++++---- ... => UserGuide_convert.md.V3ot1yUx.lean.js} | 2 +- ...-m2.js => UserGuide_create.md.CDGL9j1t.js} | 2 +- ...s => UserGuide_create.md.CDGL9j1t.lean.js} | 2 +- ...rIR_TL.js => UserGuide_faq.md.P26McMwi.js} | 2 +- ...n.js => UserGuide_faq.md.P26McMwi.lean.js} | 2 +- ...XSN0.js => UserGuide_group.md.B84Hc12z.js} | 8 +- ...js => UserGuide_group.md.B84Hc12z.lean.js} | 2 +- ...pyKwr.js => UserGuide_read.md.DMkMRsS0.js} | 2 +- ....js => UserGuide_read.md.DMkMRsS0.lean.js} | 2 +- ...G-s.js => UserGuide_select.md.C45g19Fh.js} | 2 +- ...s => UserGuide_select.md.C45g19Fh.lean.js} | 2 +- dev/assets/UserGuide_types.md.BDUDJz2J.js | 1 + ...js => UserGuide_types.md.BDUDJz2J.lean.js} | 2 +- dev/assets/UserGuide_types.md.oM5YvHuw.js | 1 - ...puau.js => UserGuide_write.md.17Th7D7-.js} | 4 +- ...js => UserGuide_write.md.17Th7D7-.lean.js} | 2 +- dev/assets/api.md.BD2SAY5k.lean.js | 1 - ...{api.md.BD2SAY5k.js => api.md.DwO_Lp_-.js} | 10 +- dev/assets/api.md.DwO_Lp_-.lean.js | 1 + .../{app.CXj-5Asm.js => app.CfRkFKoj.js} | 2 +- dev/assets/bdgyuwt.D3k-Jq19.png | Bin 131405 -> 0 bytes .../chunks/@localSearchIndexroot.Cm1xQonj.js | 1 + .../chunks/@localSearchIndexroot.dTbIYunh.js | 1 - ...AM5EmK.js => VPLocalSearchBox.D0KAGSGD.js} | 2 +- dev/assets/chunks/framework.BjKsQEKQ.js | 17 ---- dev/assets/chunks/framework.D-wbpLqx.js | 17 ++++ .../{theme.C0huFlU1.js => theme.BRL7lqyv.js} | 4 +- ... => development_contribute.md.CI9jrpVX.js} | 2 +- ...evelopment_contribute.md.CI9jrpVX.lean.js} | 2 +- ...> development_contributors.md.d02c5wBD.js} | 2 +- ...elopment_contributors.md.d02c5wBD.lean.js} | 2 +- dev/assets/faaihzc.CdZCKlB5.jpeg | Bin 0 -> 111013 bytes ...BEfcxfoL.js => get_started.md.CItvjJHa.js} | 22 ++--- ...ean.js => get_started.md.CItvjJHa.lean.js} | 2 +- ...ex.md.mbv0qPr7.js => index.md.CZNzl0c2.js} | 2 +- ...qPr7.lean.js => index.md.CZNzl0c2.lean.js} | 2 +- dev/assets/ldaihxz.CBBZcGwj.png | Bin 0 -> 677870 bytes dev/assets/mjytrfk.KnxXwIWJ.jpeg | Bin 101636 -> 0 bytes dev/assets/nzxhaau.C0catJxb.jpeg | Bin 0 -> 101144 bytes dev/assets/qssjzrq.Dz8oAFgn.jpeg | Bin 0 -> 102112 bytes dev/assets/sfhdcdq.B5Hi94Z3.png | Bin 0 -> 74348 bytes dev/assets/style.Bh1uGJMw.css | 1 - dev/assets/style.Diog2BGD.css | 1 + dev/assets/tfmbhng.CEZUxdSb.jpeg | Bin 110472 -> 0 bytes dev/assets/tqqnwkv.jI8_1HaO.png | Bin 74735 -> 0 bytes ...orials_mean_seasonal_cycle.md.BA_mwjv7.js} | 76 +++++++-------- ...ls_mean_seasonal_cycle.md.BA_mwjv7.lean.js | 1 + ...ls_mean_seasonal_cycle.md.Ds5F5_xf.lean.js | 1 - ... tutorials_other_tutorials.md.B-6Q2gWA.js} | 2 +- ...rials_other_tutorials.md.B-6Q2gWA.lean.js} | 2 +- ... => tutorials_plottingmaps.md.opEqueE8.js} | 2 +- ...utorials_plottingmaps.md.opEqueE8.lean.js} | 2 +- dev/assets/ursdsdy.BElZ_qTW.png | Bin 90307 -> 0 bytes dev/assets/vucyfpd.DxXNIu19.png | Bin 678450 -> 0 bytes dev/assets/wxockgm.Cjt-7PC6.png | Bin 0 -> 90093 bytes dev/assets/xatolhx.CCR4J3WE.jpeg | Bin 101059 -> 0 bytes dev/assets/yvbiuxj.3Hpo7gAL.jpeg | Bin 0 -> 38160 bytes dev/assets/zbvuiga.CzJduwTV.jpeg | Bin 37664 -> 0 bytes dev/development/contribute.html | 16 ++-- dev/development/contributors.html | 16 ++-- dev/get_started.html | 36 +++---- dev/hashmap.json | 2 +- dev/index.html | 16 ++-- dev/tutorials/mean_seasonal_cycle.html | 90 +++++++++--------- dev/tutorials/other_tutorials.html | 16 ++-- dev/tutorials/plottingmaps.html | 22 ++--- 86 files changed, 387 insertions(+), 387 deletions(-) rename dev/assets/{UserGuide_chunk.md.vYjKXYcf.js => UserGuide_chunk.md.Ii5YZi0L.js} (99%) rename dev/assets/{UserGuide_chunk.md.vYjKXYcf.lean.js => UserGuide_chunk.md.Ii5YZi0L.lean.js} (69%) rename dev/assets/{UserGuide_combine.md.3hvgqVGC.js => UserGuide_combine.md.D-hnw42r.js} (98%) rename dev/assets/{UserGuide_combine.md.3hvgqVGC.lean.js => UserGuide_combine.md.D-hnw42r.lean.js} (70%) rename dev/assets/{UserGuide_compute.md.Bsm7cUR3.js => UserGuide_compute.md.9OcrDvwn.js} (94%) rename dev/assets/{UserGuide_compute.md.Bsm7cUR3.lean.js => UserGuide_compute.md.9OcrDvwn.lean.js} (70%) rename dev/assets/{UserGuide_convert.md.BAP5IYC9.js => UserGuide_convert.md.V3ot1yUx.js} (84%) rename dev/assets/{UserGuide_convert.md.BAP5IYC9.lean.js => UserGuide_convert.md.V3ot1yUx.lean.js} (70%) rename dev/assets/{UserGuide_create.md.CSoeN-m2.js => UserGuide_create.md.CDGL9j1t.js} (99%) rename dev/assets/{UserGuide_create.md.CSoeN-m2.lean.js => UserGuide_create.md.CDGL9j1t.lean.js} (70%) rename dev/assets/{UserGuide_faq.md.C2rIR_TL.js => UserGuide_faq.md.P26McMwi.js} (99%) rename dev/assets/{UserGuide_faq.md.C2rIR_TL.lean.js => UserGuide_faq.md.P26McMwi.lean.js} (73%) rename dev/assets/{UserGuide_group.md.DeJXXSN0.js => UserGuide_group.md.B84Hc12z.js} (95%) rename dev/assets/{UserGuide_group.md.DeJXXSN0.lean.js => UserGuide_group.md.B84Hc12z.lean.js} (73%) rename dev/assets/{UserGuide_read.md.BE3pyKwr.js => UserGuide_read.md.DMkMRsS0.js} (99%) rename dev/assets/{UserGuide_read.md.BE3pyKwr.lean.js => UserGuide_read.md.DMkMRsS0.lean.js} (70%) rename dev/assets/{UserGuide_select.md.1p52rG-s.js => UserGuide_select.md.C45g19Fh.js} (99%) rename dev/assets/{UserGuide_select.md.1p52rG-s.lean.js => UserGuide_select.md.C45g19Fh.lean.js} (70%) create mode 100644 dev/assets/UserGuide_types.md.BDUDJz2J.js rename dev/assets/{UserGuide_types.md.oM5YvHuw.lean.js => UserGuide_types.md.BDUDJz2J.lean.js} (68%) delete mode 100644 dev/assets/UserGuide_types.md.oM5YvHuw.js rename dev/assets/{UserGuide_write.md.D_w8puau.js => UserGuide_write.md.17Th7D7-.js} (99%) rename dev/assets/{UserGuide_write.md.D_w8puau.lean.js => UserGuide_write.md.17Th7D7-.lean.js} (70%) delete mode 100644 dev/assets/api.md.BD2SAY5k.lean.js rename dev/assets/{api.md.BD2SAY5k.js => api.md.DwO_Lp_-.js} (91%) create mode 100644 dev/assets/api.md.DwO_Lp_-.lean.js rename dev/assets/{app.CXj-5Asm.js => app.CfRkFKoj.js} (90%) delete mode 100644 dev/assets/bdgyuwt.D3k-Jq19.png create mode 100644 dev/assets/chunks/@localSearchIndexroot.Cm1xQonj.js delete mode 100644 dev/assets/chunks/@localSearchIndexroot.dTbIYunh.js rename dev/assets/chunks/{VPLocalSearchBox.B3AM5EmK.js => VPLocalSearchBox.D0KAGSGD.js} (99%) delete mode 100644 dev/assets/chunks/framework.BjKsQEKQ.js create mode 100644 dev/assets/chunks/framework.D-wbpLqx.js rename dev/assets/chunks/{theme.C0huFlU1.js => theme.BRL7lqyv.js} (99%) rename dev/assets/{development_contribute.md.D7dJzz3q.js => development_contribute.md.CI9jrpVX.js} (97%) rename dev/assets/{development_contribute.md.D7dJzz3q.lean.js => development_contribute.md.CI9jrpVX.lean.js} (71%) rename dev/assets/{development_contributors.md.B4go3-iO.js => development_contributors.md.d02c5wBD.js} (97%) rename dev/assets/{development_contributors.md.B4go3-iO.lean.js => development_contributors.md.d02c5wBD.lean.js} (97%) create mode 100644 dev/assets/faaihzc.CdZCKlB5.jpeg rename dev/assets/{get_started.md.BEfcxfoL.js => get_started.md.CItvjJHa.js} (72%) rename dev/assets/{get_started.md.BEfcxfoL.lean.js => get_started.md.CItvjJHa.lean.js} (68%) rename dev/assets/{index.md.mbv0qPr7.js => index.md.CZNzl0c2.js} (96%) rename dev/assets/{index.md.mbv0qPr7.lean.js => index.md.CZNzl0c2.lean.js} (96%) create mode 100644 dev/assets/ldaihxz.CBBZcGwj.png delete mode 100644 dev/assets/mjytrfk.KnxXwIWJ.jpeg create mode 100644 dev/assets/nzxhaau.C0catJxb.jpeg create mode 100644 dev/assets/qssjzrq.Dz8oAFgn.jpeg create mode 100644 dev/assets/sfhdcdq.B5Hi94Z3.png delete mode 100644 dev/assets/style.Bh1uGJMw.css create mode 100644 dev/assets/style.Diog2BGD.css delete mode 100644 dev/assets/tfmbhng.CEZUxdSb.jpeg delete mode 100644 dev/assets/tqqnwkv.jI8_1HaO.png rename dev/assets/{tutorials_mean_seasonal_cycle.md.Ds5F5_xf.js => tutorials_mean_seasonal_cycle.md.BA_mwjv7.js} (68%) create mode 100644 dev/assets/tutorials_mean_seasonal_cycle.md.BA_mwjv7.lean.js delete mode 100644 dev/assets/tutorials_mean_seasonal_cycle.md.Ds5F5_xf.lean.js rename dev/assets/{tutorials_other_tutorials.md.D0CeN64Y.js => tutorials_other_tutorials.md.B-6Q2gWA.js} (95%) rename dev/assets/{tutorials_other_tutorials.md.D0CeN64Y.lean.js => tutorials_other_tutorials.md.B-6Q2gWA.lean.js} (71%) rename dev/assets/{tutorials_plottingmaps.md.BiCSvrU4.js => tutorials_plottingmaps.md.opEqueE8.js} (99%) rename dev/assets/{tutorials_plottingmaps.md.BiCSvrU4.lean.js => tutorials_plottingmaps.md.opEqueE8.lean.js} (56%) delete mode 100644 dev/assets/ursdsdy.BElZ_qTW.png delete mode 100644 dev/assets/vucyfpd.DxXNIu19.png create mode 100644 dev/assets/wxockgm.Cjt-7PC6.png delete mode 100644 dev/assets/xatolhx.CCR4J3WE.jpeg create mode 100644 dev/assets/yvbiuxj.3Hpo7gAL.jpeg delete mode 100644 dev/assets/zbvuiga.CzJduwTV.jpeg diff --git a/dev/404.html b/dev/404.html index 9361351c..ed74b0be 100644 --- a/dev/404.html +++ b/dev/404.html @@ -5,17 +5,17 @@ 404 | YAXArrays.jl - - + + - +
- + \ No newline at end of file diff --git a/dev/UserGuide/chunk.html b/dev/UserGuide/chunk.html index 8ad988d9..27bb65fe 100644 --- a/dev/UserGuide/chunk.html +++ b/dev/UserGuide/chunk.html @@ -5,19 +5,19 @@ Chunk YAXArrays | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Chunk YAXArrays

Thinking about chunking is important when it comes to analyzing your data, because in most situations this will not fit into memory, hence having the fastest read access to it is crucial for your workflows. For example, for geo-spatial data do you want fast access on time or space, or... think about it.

To determine the chunk size of the array representation on disk, call the setchunks function prior to saving.

Chunking YAXArrays

julia
using YAXArrays, Zarr
+    
Skip to content

Chunk YAXArrays

Thinking about chunking is important when it comes to analyzing your data, because in most situations this will not fit into memory, hence having the fastest read access to it is crucial for your workflows. For example, for geo-spatial data do you want fast access on time or space, or... think about it.

To determine the chunk size of the array representation on disk, call the setchunks function prior to saving.

Chunking YAXArrays

julia
using YAXArrays, Zarr
 a = YAXArray(rand(10,20))
 a_chunked = setchunks(a, (5,10))
 a_chunked.chunks
2×2 DiskArrays.GridChunks{2, Tuple{DiskArrays.RegularChunks, DiskArrays.RegularChunks}}:
@@ -98,7 +98,7 @@
 → Dim_2 Sampled{Int64} Base.OneTo(20) ForwardOrdered Regular Points
 Variables: 
 x, y, z,

Suggestions on how to improve or add to these examples is welcome.

- + \ No newline at end of file diff --git a/dev/UserGuide/combine.html b/dev/UserGuide/combine.html index b2e0a8e8..a630967f 100644 --- a/dev/UserGuide/combine.html +++ b/dev/UserGuide/combine.html @@ -5,19 +5,19 @@ Combine YAXArrays | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Combine YAXArrays

Data is often scattered across multiple files and corresponding arrays, e.g. one file per time step. This section describes methods on how to combine them into a single YAXArray.

cat along an existing dimension

Here we use cat to combine two arrays consisting of data from the first and the second half of a year into one single array containing the whole year. We glue the arrays along the first dimension using dims = 1: The resulting array whole_year still has one dimension, i.e. time, but with 12 instead of 6 elements.

julia
using YAXArrays
+    
Skip to content

Combine YAXArrays

Data is often scattered across multiple files and corresponding arrays, e.g. one file per time step. This section describes methods on how to combine them into a single YAXArray.

cat along an existing dimension

Here we use cat to combine two arrays consisting of data from the first and the second half of a year into one single array containing the whole year. We glue the arrays along the first dimension using dims = 1: The resulting array whole_year still has one dimension, i.e. time, but with 12 instead of 6 elements.

julia
using YAXArrays
 
 first_half = YAXArray((Dim{:time}(1:6),), rand(6))
 second_half = YAXArray((Dim{:time}(7:12),), rand(6))
@@ -45,7 +45,7 @@
 ├───────────────────────────────────────────────────── file size ┤ 
   file size: 96.0 bytes
 └────────────────────────────────────────────────────────────────┘
- + \ No newline at end of file diff --git a/dev/UserGuide/compute.html b/dev/UserGuide/compute.html index d38f4e5f..17291fb7 100644 --- a/dev/UserGuide/compute.html +++ b/dev/UserGuide/compute.html @@ -5,19 +5,19 @@ Compute YAXArrays | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Compute YAXArrays

This section describes how to create new YAXArrays by performing operations on them.

  • Use arithmetics to add or multiply numbers to each element of an array

  • Use map to apply a more complex functions to every element of an array

  • Use mapslices to reduce a dimension, e.g. to get the mean over all time steps

  • Use mapCube to apply complex functions on an array that may change any dimensions

Let's start by creating an example dataset:

julia
using YAXArrays
+    
Skip to content

Compute YAXArrays

This section describes how to create new YAXArrays by performing operations on them.

  • Use arithmetics to add or multiply numbers to each element of an array

  • Use map to apply a more complex functions to every element of an array

  • Use mapslices to reduce a dimension, e.g. to get the mean over all time steps

  • Use mapCube to apply complex functions on an array that may change any dimensions

Let's start by creating an example dataset:

julia
using YAXArrays
 using Dates
 
 axlist = (
@@ -38,7 +38,7 @@
   :origin => "user guide"
 ├─────────────────────────────────────────────────────────────────── file size ┤ 
   file size: 35.16 KB
-└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.4487417751953737
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
+└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.9834433505013818
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
 │ 30×10×15 YAXArray{Float64,3} │
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
   ↓ time Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-30") ForwardOrdered Regular Points,
@@ -131,14 +131,14 @@
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────────────────┘
-  ↓ →  1.0        1.28571   1.57143     …  4.42857    4.71429   5.0
-  1.0  0.0329329  0.968965  0.120337       0.143804   0.101359  0.322847
-  2.0  0.612      0.335156  0.720999       0.418612   0.434637  0.847666
-  3.0  0.420914   0.716497  0.670578       0.0826695  0.459483  0.929523
-  ⋮                                     ⋱                       ⋮
-  8.0  0.410058   0.7374    0.943053       0.385523   0.532123  0.994381
-  9.0  0.645081   0.79288   0.90868        0.288811   0.14046   0.984966
- 10.0  0.248894   0.705871  0.00744829  …  0.224858   0.92494   0.782546

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
+  ↓ →  1.0        1.28571   1.57143    …  4.42857   4.71429    5.0
+  1.0  0.318039   0.692256  0.28974       0.317792  0.0182202  0.390315
+  2.0  0.136076   0.449317  0.340401      0.937007  0.127343   0.406874
+  3.0  0.977188   0.136718  0.642726      0.101499  0.92248    0.987994
+  ⋮                                    ⋱                       ⋮
+  8.0  0.347368   0.206873  0.215695      0.761502  0.972913   0.0674906
+  9.0  0.0461837  0.817787  0.365603      0.773245  0.613749   0.0822654
+ 10.0  0.585923   0.25238   0.0913507  …  0.761125  0.190139   0.584065

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
 points_of_regions = map(enumerate(regions)) do (i,region)
     region => findall(isequal(region), regions_mat)
 end |> Dict |> sort
OrderedCollections.OrderedDict{String, Vector{CartesianIndex{2}}} with 4 entries:
@@ -192,7 +192,7 @@
 mapCube(mymean, a, indims=InDims("time"), outdims=OutDims())

In the last example, mapCube was used to map the mymean function. mapslices is a convenient function that can replace mapCube, where you can omit defining an extra function with the output argument as an input (e.g. mymean). It is possible to simply use mapslice

julia
mapslices(mean  skipmissing, a, dims="time")

It is also possible to distribute easily the workload on a cluster, with little modification to the code. To do so, we use the ClusterManagers package.

julia
using Distributed
 using ClusterManagers
 addprocs(SlurmManager(10))
- + \ No newline at end of file diff --git a/dev/UserGuide/convert.html b/dev/UserGuide/convert.html index 08b3a7fc..df9741de 100644 --- a/dev/UserGuide/convert.html +++ b/dev/UserGuide/convert.html @@ -5,19 +5,19 @@ Convert YAXArrays | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Convert YAXArrays

This section describes how to convert variables from types of other Julia packages into YAXArrays and vice versa.

WARNING

YAXArrays is designed to work with large datasets that are way larger than the memory. However, most types are designed to work in memory. Those conversions are only possible if the entire dataset fits into memory. In addition, metadata might be lost during conversion.

Convert Base.Array

Convert Base.Array to YAXArray:

julia
using YAXArrays
+    
Skip to content

Convert YAXArrays

This section describes how to convert variables from types of other Julia packages into YAXArrays and vice versa.

WARNING

YAXArrays is designed to work with large datasets that are way larger than the memory. However, most types are designed to work in memory. Those conversions are only possible if the entire dataset fits into memory. In addition, metadata might be lost during conversion.

Convert Base.Array

Convert Base.Array to YAXArray:

julia
using YAXArrays
 
 m = rand(5,10)
 a = YAXArray(m)
╭──────────────────────────╮
@@ -30,11 +30,11 @@
 ├────────────────────────────────────────────────────────── file size ┤ 
   file size: 400.0 bytes
 └─────────────────────────────────────────────────────────────────────┘

Convert YAXArray to Base.Array:

julia
m2 = collect(a.data)
5×10 Matrix{Float64}:
- 0.218605  0.438946   0.561435  0.100201   …  0.754227   0.497832  0.988424
- 0.456409  0.282382   0.729159  0.641476      0.222657   0.586036  0.560896
- 0.496056  0.982327   0.365257  0.0689955     0.104668   0.188491  0.153693
- 0.604884  0.27352    0.174088  0.0322409     0.0892979  0.492756  0.432757
- 0.487935  0.0147544  0.387694  0.568254      0.187537   0.375085  0.366297

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
+ 0.250748   0.606155  0.685321   0.683486  …  0.853183   0.602267   0.756506
+ 0.394941   0.865179  0.0884358  0.072622     0.0751232  0.543502   0.86815
+ 0.740692   0.174079  0.832396   0.987598     0.83732    0.342369   0.876059
+ 0.972404   0.192129  0.421407   0.736639     0.353257   0.0570881  0.564018
+ 0.0873387  0.859362  0.66181    0.560379     0.186338   0.72339    0.684705

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
 
 lon, lat = X(25:1:30), Y(25:1:30)
 time = Ti(2000:2024)
@@ -62,13 +62,13 @@
 
 └─────────────────────────────────────────────────────────────┘
 [:, :, 1]
-  ↓ →  25         26           27          28         29         30
- 25     0.811518   0.00596874   0.338534    0.290113   0.529127   0.339448
- 26     0.544155   0.994666     0.578795    0.267121   0.109138   0.422948
- 27     0.33827    0.912082     0.606559    0.427245   0.513844   0.499061
- 28     0.132475   0.0288596    0.496312    0.468006   0.567599   0.0254621
- 29     0.93963    0.419694     0.89241     0.899684   0.691629   0.530887
- 30     0.975192   0.861975     0.0931151   0.836894   0.994368   0.204639

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
+  ↓ →  25          26         27         28          29          30
+ 25     0.665024    0.763095   0.141595   0.809514    0.0668261   0.286677
+ 26     0.49657     0.820772   0.675138   0.0934071   0.827419    0.53963
+ 27     0.0885343   0.751802   0.493651   0.98674     0.490318    0.488797
+ 28     0.184555    0.547323   0.335812   0.484735    0.996668    0.427747
+ 29     0.623178    0.211379   0.762215   0.742236    0.621469    0.0371825
+ 30     0.189827    0.454855   0.728284   0.871052    0.601579    0.973524

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
 using YAXArrayBase
 
 dim_arr = rand(X(1:5), Y(10.0:15.0), metadata = Dict{String, Any}())
@@ -89,13 +89,13 @@
 ├──────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────┘
- ↓ →  10.0       11.0       12.0       13.0       14.0       15.0
- 1     0.608907   0.123252   0.250806   0.51111    0.995527   0.354258
- 2     0.824792   0.505795   0.225712   0.645522   0.983289   0.373787
- 3     0.425755   0.547815   0.927177   0.15407    0.645345   0.222943
- 4     0.260391   0.872838   0.790217   0.351627   0.172715   0.311381
- 5     0.200382   0.901526   0.371273   0.425517   0.327439   0.755546

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

- + ↓ → 10.0 11.0 12.0 13.0 14.0 15.0 + 1 0.0356227 0.307849 0.546663 0.420426 0.0096067 0.98121 + 2 0.385317 0.405208 0.254633 0.662609 0.690995 0.126389 + 3 0.280651 0.122665 0.73653 0.0574339 0.55694 0.99227 + 4 0.216638 0.772677 0.501288 0.726186 0.355128 0.833617 + 5 0.401606 0.37699 0.0709768 0.290475 0.777094 0.23261

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

+ \ No newline at end of file diff --git a/dev/UserGuide/create.html b/dev/UserGuide/create.html index 78c6305f..f9439a1f 100644 --- a/dev/UserGuide/create.html +++ b/dev/UserGuide/create.html @@ -5,19 +5,19 @@ Create YAXArrays and Datasets | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Create YAXArrays and Datasets

This section describes how to create arrays and datasets by filling values directly.

Create a YAXArray

We can create a new YAXArray by filling the values directly:

julia
using YAXArrays
+    
Skip to content

Create YAXArrays and Datasets

This section describes how to create arrays and datasets by filling values directly.

Create a YAXArray

We can create a new YAXArray by filling the values directly:

julia
using YAXArrays
 a1 = YAXArray(rand(10, 20, 5))
╭─────────────────────────────╮
 │ 10×20×5 YAXArray{Float64,3} │
 ├─────────────────────────────┴────────────────────────────────── dims ┐
@@ -63,7 +63,7 @@
 Variables: 
 a2, a3, 
 Properties: Dict(:origin => "user guide")
- + \ No newline at end of file diff --git a/dev/UserGuide/faq.html b/dev/UserGuide/faq.html index 59de7fd9..7a23e661 100644 --- a/dev/UserGuide/faq.html +++ b/dev/UserGuide/faq.html @@ -5,19 +5,19 @@ Frequently Asked Questions (FAQ) | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Frequently Asked Questions (FAQ)

The purpose of this section is to do a collection of small convinient pieces of code on how to do simple things.

Extract the axes names from a Cube

julia
using YAXArrays
+    
Skip to content

Frequently Asked Questions (FAQ)

The purpose of this section is to do a collection of small convinient pieces of code on how to do simple things.

Extract the axes names from a Cube

julia
using YAXArrays
 using DimensionalData
julia
julia> c = YAXArray(rand(10, 10, 5))
╭─────────────────────────────╮
 10×10×5 YAXArray{Float64,3}
 ├─────────────────────────────┴────────────────────────────────── dims ┐
@@ -174,7 +174,7 @@
 fig, ax, obj = heatmap(classes;
     colormap=Makie.Categorical(cgrad([:grey15, :orangered, :snow3])))
 cbar = Colorbar(fig[1,2], obj)
-fig

Now we define the input cubes that will be considered for the iterable table

julia
t = CubeTable(values=ds1, classes=classes)
Datacube iterator with 1 subtables with fields: (:values, :classes, :time, :lon, :lat)
julia
using DataFrames
+fig

Now we define the input cubes that will be considered for the iterable table

julia
t = CubeTable(values=ds1, classes=classes)
Datacube iterator with 1 subtables with fields: (:values, :classes, :time, :lon, :lat)
julia
using DataFrames
 using OnlineStats
 ## visualization of the CubeTable
 c_tbl = DataFrame(t[1])
@@ -213,7 +213,7 @@
 c
 Dim_1 Sampled{Int64} Base.OneTo(2) ForwardOrdered Regular Points,
 Dim_2 Sampled{Int64} Base.OneTo(5) ForwardOrdered Regular Points
- + \ No newline at end of file diff --git a/dev/UserGuide/group.html b/dev/UserGuide/group.html index 14d20691..7c0a2621 100644 --- a/dev/UserGuide/group.html +++ b/dev/UserGuide/group.html @@ -5,19 +5,19 @@ Group YAXArrays and Datasets | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Group YAXArrays and Datasets

The following examples will use the groupby function to calculate temporal and spatial averages.

julia
using YAXArrays, DimensionalData
+    
Skip to content

Group YAXArrays and Datasets

The following examples will use the groupby function to calculate temporal and spatial averages.

julia
using YAXArrays, DimensionalData
 using NetCDF
 using Downloads
 using Dates
@@ -73,7 +73,7 @@
  :Dec_Jan_Feb  275×205×1 YAXArray
  :Mar_Apr_May  275×205×1 YAXArray
  :Jun_Jul_Aug  275×205×1 YAXArray
- :Sep_Oct_Nov  275×205×1 YAXArray

dropdims

Note that now the time dimension has length one, we can use dropdims to remove it

julia
julia> mean_g = dropdims.(mean_g, dims=:Ti)
╭──────────────────────────────────────────────────╮
+ :Sep_Oct_Nov  275×205×1 YAXArray

dropdims

Note that now the time dimension has length one, we can use dropdims to remove it

julia
julia> mean_g = dropdims.(mean_g, dims=:Ti)
╭──────────────────────────────────────────────────╮
 4-element DimGroupByArray{YAXArray{Float64,2},1}
 ├──────────────────────────────────────────────────┴───────────────────── dims ┐
 Ti Categorical{Symbol} [:Dec_Jan_Feb, :Mar_Apr_May, :Jun_Jul_Aug, :Sep_Oct_Nov] Unordered
@@ -86,7 +86,7 @@
  :Dec_Jan_Feb  275×205 YAXArray
  :Mar_Apr_May  275×205 YAXArray
  :Jun_Jul_Aug  275×205 YAXArray
- :Sep_Oct_Nov  275×205 YAXArray

seasons

Due to the groupby function we will obtain new grouping names, in this case in the time dimension:

julia
seasons_g = lookup(mean_g, :Ti)
Categorical{Symbol} Unordered
+ :Sep_Oct_Nov  275×205 YAXArray

seasons

Due to the groupby function we will obtain new grouping names, in this case in the time dimension:

julia
seasons_g = lookup(mean_g, :Ti)
Categorical{Symbol} Unordered
 wrapping: 4-element Vector{Symbol}:
  :Dec_Jan_Feb
  :Mar_Apr_May
@@ -126,7 +126,7 @@
  :Dec_Jan_Feb  1-element YAXArray
  :Mar_Apr_May  1-element YAXArray
  :Jun_Jul_Aug  1-element YAXArray
- :Sep_Oct_Nov  1-element YAXArray

weights

Weight the seasonal groups by sum_days

julia
julia> weights = map(./, g_tempo, sum_days)
╭──────────────────────────────────────────────────╮
+ :Sep_Oct_Nov  1-element YAXArray

weights

Weight the seasonal groups by sum_days

julia
julia> weights = map(./, g_tempo, sum_days)
╭──────────────────────────────────────────────────╮
 4-element DimGroupByArray{YAXArray{Float64,1},1}
 ├──────────────────────────────────────────────────┴───────────────────── dims ┐
 Ti Categorical{Symbol} [:Dec_Jan_Feb, :Mar_Apr_May, :Jun_Jul_Aug, :Sep_Oct_Nov] Unordered
@@ -220,8 +220,8 @@
     colgap!(fig.layout, 5)
     rowgap!(fig.layout, 5)
     fig
-end

which shows a good agreement with the results first published by Joe Hamman.

- +end

which shows a good agreement with the results first published by Joe Hamman.

+ \ No newline at end of file diff --git a/dev/UserGuide/read.html b/dev/UserGuide/read.html index cfa0c8ab..94e0c0b2 100644 --- a/dev/UserGuide/read.html +++ b/dev/UserGuide/read.html @@ -5,19 +5,19 @@ Read YAXArrays and Datasets | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Read YAXArrays and Datasets

This section describes how to read files, URLs, and directories into YAXArrays and datasets.

Read Zarr

Open a Zarr store as a Dataset:

julia
using YAXArrays
+    
Skip to content

Read YAXArrays and Datasets

This section describes how to read files, URLs, and directories into YAXArrays and datasets.

Read Zarr

Open a Zarr store as a Dataset:

julia
using YAXArrays
 using Zarr
 path="gs://cmip6/CMIP6/ScenarioMIP/DKRZ/MPI-ESM1-2-HR/ssp585/r1i1p1f1/3hr/tas/gn/v20190710/"
 store = zopen(path, consolidated=true)
@@ -88,7 +88,7 @@
 
 path = download("https://github.com/yeesian/ArchGDALDatasets/raw/307f8f0e584a39a050c042849004e6a2bd674f99/gdalworkshop/world.tif", "world.tif")
 ds = open_dataset(path)
- + \ No newline at end of file diff --git a/dev/UserGuide/select.html b/dev/UserGuide/select.html index bd7bb418..ef655788 100644 --- a/dev/UserGuide/select.html +++ b/dev/UserGuide/select.html @@ -5,19 +5,19 @@ Select YAXArrays and Datasets | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Select YAXArrays and Datasets

The dimensions or axes of an YAXArray are named making it easier to subset or query certain ranges of an array. Let's open an example Dataset used to select certain elements:

julia
using YAXArrays
+    
Skip to content

Select YAXArrays and Datasets

The dimensions or axes of an YAXArray are named making it easier to subset or query certain ranges of an array. Let's open an example Dataset used to select certain elements:

julia
using YAXArrays
 using NetCDF
 using Downloads: download
 
@@ -309,7 +309,7 @@
   89.5

These values are defined as lookups in the package DimensionalData:

julia
lookup(tos, :lon)
Sampled{Float64} ForwardOrdered Regular DimensionalData.Dimensions.Lookups.Points
 wrapping: 1.0:2.0:359.0

which is equivalent to:

julia
tos.lon.val
Sampled{Float64} ForwardOrdered Regular DimensionalData.Dimensions.Lookups.Points
 wrapping: 1.0:2.0:359.0
- + \ No newline at end of file diff --git a/dev/UserGuide/types.html b/dev/UserGuide/types.html index b40295e1..766c13f7 100644 --- a/dev/UserGuide/types.html +++ b/dev/UserGuide/types.html @@ -5,20 +5,20 @@ Types | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

- +
Skip to content

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

+ \ No newline at end of file diff --git a/dev/UserGuide/write.html b/dev/UserGuide/write.html index 6d48dc80..6e9af0e1 100644 --- a/dev/UserGuide/write.html +++ b/dev/UserGuide/write.html @@ -5,19 +5,19 @@ Write YAXArrays and Datasets | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

Write YAXArrays and Datasets

Create an example Dataset:

julia
using YAXArrays
+    
Skip to content

Write YAXArrays and Datasets

Create an example Dataset:

julia
using YAXArrays
 using NetCDF
 using Downloads: download
 
@@ -31,7 +31,7 @@
 tos, 
 Properties: Dict{String, Any}("cmor_version" => 0.96f0, "references" => "Dufresne et al, Journal of Climate, 2015, vol XX, p 136", "realization" => 1, "Conventions" => "CF-1.0", "contact" => "Sebastien Denvil, sebastien.denvil@ipsl.jussieu.fr", "history" => "YYYY/MM/JJ: data generated; YYYY/MM/JJ+1 data transformed  At 16:37:23 on 01/11/2005, CMOR rewrote data to comply with CF standards and IPCC Fourth Assessment requirements", "table_id" => "Table O1 (13 November 2004)", "source" => "IPSL-CM4_v1 (2003) : atmosphere : LMDZ (IPSL-CM4_IPCC, 96x71x19) ; ocean ORCA2 (ipsl_cm4_v1_8, 2x2L31); sea ice LIM (ipsl_cm4_v", "title" => "IPSL  model output prepared for IPCC Fourth Assessment SRES A2 experiment", "experiment_id" => "SRES A2 experiment"…)

Write Zarr

Save a single YAXArray to a directory:

julia
using Zarr
 savecube(ds.tos, "tos.zarr", driver=:zarr)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.zarr", driver=:zarr)

Write NetCDF

Save a single YAXArray to a directory:

julia
using NetCDF
-savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

# YAXArrays.Datasets.savedatasetFunction.

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source


Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
+savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

# YAXArrays.Datasets.savedatasetFunction.

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source


Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
 savedataset(ds2, path="ds.zarr", backend=:zarr, append=true)
julia
julia> open_dataset("ds.zarr", driver=:zarr)
YAXArray Dataset
 Shared Axes:
 ()
@@ -55,7 +55,7 @@
 ├─────────────────────────────────────────────────────────── file size ┤
   file size: 800.0 bytes
 └──────────────────────────────────────────────────────────────────────┘

and save them as

julia
r = savecube(a, "skeleton.zarr", driver=:zarr, skeleton=true)

and check that all the values are missing

julia
all(ismissing,r[:,:])
true

If using FillArrays is not possible, using the zeros function works as well, though it does allocate the array in memory.

INFO

The skeleton argument is also available for savedataset.

- + \ No newline at end of file diff --git a/dev/api.html b/dev/api.html index 63a2425e..e12c89e4 100644 --- a/dev/api.html +++ b/dev/api.html @@ -5,32 +5,32 @@ API Reference | YAXArrays.jl - - + + - + - - - + + + -
Skip to content

API Reference

This section describes all available functions of this package.

Public API

# YAXArrays.getAxisMethod.
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source


# YAXArrays.CubesModule.

The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that

source


# YAXArrays.Cubes.YAXArrayType.
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source


# YAXArrays.Cubes.caxesFunction.

Returns the axes of a Cube

source


# YAXArrays.Cubes.caxesMethod.
julia
caxes

Embeds Cube inside a new Cube

source


# YAXArrays.Cubes.concatenatecubesMethod.
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source


# YAXArrays.Cubes.readcubedataMethod.
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source


# YAXArrays.Cubes.setchunksMethod.
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source


# YAXArrays.Cubes.subsetcubeFunction.

This function calculates a subset of a cube's data

source


# YAXArrays.DAT.InDimsType.
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source


# YAXArrays.DAT.MovingWindowType.
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source


# YAXArrays.DAT.OutDimsMethod.
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source


# YAXArrays.DAT.CubeTableMethod.
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source


# YAXArrays.DAT.cubefittableMethod.
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source


# YAXArrays.DAT.fittableMethod.
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source


# YAXArrays.DAT.mapCubeMethod.
julia
mapCube(fun, cube, addargs...;kwargs...)
+    
Skip to content

API Reference

This section describes all available functions of this package.

Public API

# YAXArrays.getAxisMethod.
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source


# YAXArrays.CubesModule.

The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that

source


# YAXArrays.Cubes.YAXArrayType.
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source


# YAXArrays.Cubes.caxesFunction.

Returns the axes of a Cube

source


# YAXArrays.Cubes.caxesMethod.
julia
caxes

Embeds Cube inside a new Cube

source


# YAXArrays.Cubes.concatenatecubesMethod.
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source


# YAXArrays.Cubes.readcubedataMethod.
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source


# YAXArrays.Cubes.setchunksMethod.
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source


# YAXArrays.Cubes.subsetcubeFunction.

This function calculates a subset of a cube's data

source


# YAXArrays.DAT.InDimsType.
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source


# YAXArrays.DAT.MovingWindowType.
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source


# YAXArrays.DAT.OutDimsMethod.
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source


# YAXArrays.DAT.CubeTableMethod.
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source


# YAXArrays.DAT.cubefittableMethod.
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source


# YAXArrays.DAT.fittableMethod.
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source


# YAXArrays.DAT.mapCubeMethod.
julia
mapCube(fun, cube, addargs...;kwargs...)
 
 Map a given function `fun` over slices of all cubes of the dataset `ds`. 
 Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.
 For Datasets, only one output cube can be specified.
 In contrast to the mapCube function for cubes, additional arguments for the inner function should be set as keyword arguments.
 
-For the specific keyword arguments see the docstring of the mapCube function for cubes.

source


# YAXArrays.DAT.mapCubeMethod.
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB``` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source


# YAXArrays.Datasets.DatasetType.
julia
Dataset object which stores an `OrderedDict` of YAXArrays with Symbol keys. 
+For the specific keyword arguments see the docstring of the mapCube function for cubes.

source


# YAXArrays.DAT.mapCubeMethod.
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB``` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source


# YAXArrays.Datasets.DatasetType.
julia
Dataset object which stores an `OrderedDict` of YAXArrays with Symbol keys. 
 a dictionary of CubeAxes and a Dictionary of general properties. 
-A dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source


# YAXArrays.Datasets.DatasetMethod.

Dataset(; properties = Dict{String,Any}, cubes...)

Construct a YAXArray Dataset with global attributes properties a and a list of named YAXArrays cubes...

source


# YAXArrays.Datasets.CubeMethod.
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source


# YAXArrays.Datasets.open_datasetMethod.

open_dataset(g; driver=:all)

Open the dataset at g with the given driver. The default driver will search for available drivers and tries to detect the useable driver from the filename extension.

source


# YAXArrays.Datasets.savecubeMethod.
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source


# YAXArrays.Datasets.savedatasetMethod.

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source


# YAXArrays.Datasets.to_datasetMethod.

to_dataset(c;datasetaxis = "Variable", layername = "layer")

Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name layername

source


Internal API

# YAXArrays.YAXDefaultsConstant.

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source


# YAXArrays.findAxisMethod.
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source


# YAXArrays.getOutAxisMethod.
julia
getOutAxis

source


# YAXArrays.get_descriptorMethod.
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source


# YAXArrays.match_axisMethod.
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
+A dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source


# YAXArrays.Datasets.DatasetMethod.

Dataset(; properties = Dict{String,Any}, cubes...)

Construct a YAXArray Dataset with global attributes properties a and a list of named YAXArrays cubes...

source


# YAXArrays.Datasets.CubeMethod.
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source


# YAXArrays.Datasets.open_datasetMethod.

open_dataset(g; driver=:all)

Open the dataset at g with the given driver. The default driver will search for available drivers and tries to detect the useable driver from the filename extension.

source


# YAXArrays.Datasets.savecubeMethod.
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source


# YAXArrays.Datasets.savedatasetMethod.

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source


# YAXArrays.Datasets.to_datasetMethod.

to_dataset(c;datasetaxis = "Variable", layername = "layer")

Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name layername

source


Internal API

# YAXArrays.YAXDefaultsConstant.

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source


# YAXArrays.findAxisMethod.
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source


# YAXArrays.getOutAxisMethod.
julia
getOutAxis

source


# YAXArrays.get_descriptorMethod.
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source


# YAXArrays.match_axisMethod.
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
 This is used to find different axes and to make certain axis description the same.
-For example to disregard differences of captialisation.

source


# YAXArrays.Cubes.CleanMeType.
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source


# YAXArrays.Cubes.cleanMethod.
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source


# YAXArrays.Cubes.copydataMethod.
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source


# YAXArrays.Cubes.optifuncMethod.
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source


# YAXArrays.DAT.DATConfigType.

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source


# YAXArrays.DAT.InputCubeType.

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source


# YAXArrays.DAT.OutputCubeType.

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source


# YAXArrays.DAT.YAXColumnType.
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source


# YAXArrays.DAT.cmpcachmissesMethod.

Function that compares two cache miss specifiers by their importance

source


# YAXArrays.DAT.getFrontPermMethod.

Calculate an axis permutation that brings the wanted dimensions to the front

source


# YAXArrays.DAT.getLoopCacheSizeMethod.

Calculate optimal Cache size to DAT operation

source


# YAXArrays.DAT.getOuttypeMethod.
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source


# YAXArrays.DAT.getloopchunksMethod.
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.
-This computation of the size of the chunks is handled by [`DiskArrays.approx_chunksize`](@ref)

source


# YAXArrays.DAT.permuteloopaxesMethod.
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source


# YAXArrays.Cubes.setchunksMethod.
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source


# YAXArrays.Datasets.collectfromhandleMethod.

Extracts a YAXArray from a dataset handle that was just created from a arrayinfo

source


# YAXArrays.Datasets.createdatasetMethod.

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

source


# YAXArrays.Datasets.getarrayinfoMethod.

Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair

source


# YAXArrays.Datasets.testrangeMethod.

Test if data in x can be approximated by a step range

source


- +For example to disregard differences of captialisation.

source


# YAXArrays.Cubes.CleanMeType.
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source


# YAXArrays.Cubes.cleanMethod.
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source


# YAXArrays.Cubes.copydataMethod.
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source


# YAXArrays.Cubes.optifuncMethod.
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source


# YAXArrays.DAT.DATConfigType.

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source


# YAXArrays.DAT.InputCubeType.

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source


# YAXArrays.DAT.OutputCubeType.

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source


# YAXArrays.DAT.YAXColumnType.
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source


# YAXArrays.DAT.cmpcachmissesMethod.

Function that compares two cache miss specifiers by their importance

source


# YAXArrays.DAT.getFrontPermMethod.

Calculate an axis permutation that brings the wanted dimensions to the front

source


# YAXArrays.DAT.getLoopCacheSizeMethod.

Calculate optimal Cache size to DAT operation

source


# YAXArrays.DAT.getOuttypeMethod.
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source


# YAXArrays.DAT.getloopchunksMethod.
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.
+This computation of the size of the chunks is handled by [`DiskArrays.approx_chunksize`](@ref)

source


# YAXArrays.DAT.permuteloopaxesMethod.
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source


# YAXArrays.Cubes.setchunksMethod.
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source


# YAXArrays.Datasets.collectfromhandleMethod.

Extracts a YAXArray from a dataset handle that was just created from a arrayinfo

source


# YAXArrays.Datasets.createdatasetMethod.

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

source


# YAXArrays.Datasets.getarrayinfoMethod.

Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair

source


# YAXArrays.Datasets.testrangeMethod.

Test if data in x can be approximated by a step range

source


+ \ No newline at end of file diff --git a/dev/assets/UserGuide_chunk.md.vYjKXYcf.js b/dev/assets/UserGuide_chunk.md.Ii5YZi0L.js similarity index 99% rename from dev/assets/UserGuide_chunk.md.vYjKXYcf.js rename to dev/assets/UserGuide_chunk.md.Ii5YZi0L.js index 93f77804..86b19e00 100644 --- a/dev/assets/UserGuide_chunk.md.vYjKXYcf.js +++ b/dev/assets/UserGuide_chunk.md.Ii5YZi0L.js @@ -1,4 +1,4 @@ -import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Chunk YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/chunk.md","filePath":"UserGuide/chunk.md","lastUpdated":null}'),p={name:"UserGuide/chunk.md"},h=n(`

Chunk YAXArrays

Thinking about chunking is important when it comes to analyzing your data, because in most situations this will not fit into memory, hence having the fastest read access to it is crucial for your workflows. For example, for geo-spatial data do you want fast access on time or space, or... think about it.

To determine the chunk size of the array representation on disk, call the setchunks function prior to saving.

Chunking YAXArrays

julia
using YAXArrays, Zarr
+import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Chunk YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/chunk.md","filePath":"UserGuide/chunk.md","lastUpdated":null}'),p={name:"UserGuide/chunk.md"},h=n(`

Chunk YAXArrays

Thinking about chunking is important when it comes to analyzing your data, because in most situations this will not fit into memory, hence having the fastest read access to it is crucial for your workflows. For example, for geo-spatial data do you want fast access on time or space, or... think about it.

To determine the chunk size of the array representation on disk, call the setchunks function prior to saving.

Chunking YAXArrays

julia
using YAXArrays, Zarr
 a = YAXArray(rand(10,20))
 a_chunked = setchunks(a, (5,10))
 a_chunked.chunks
2×2 DiskArrays.GridChunks{2, Tuple{DiskArrays.RegularChunks, DiskArrays.RegularChunks}}:
diff --git a/dev/assets/UserGuide_chunk.md.vYjKXYcf.lean.js b/dev/assets/UserGuide_chunk.md.Ii5YZi0L.lean.js
similarity index 69%
rename from dev/assets/UserGuide_chunk.md.vYjKXYcf.lean.js
rename to dev/assets/UserGuide_chunk.md.Ii5YZi0L.lean.js
index 800ba829..55c8cf36 100644
--- a/dev/assets/UserGuide_chunk.md.vYjKXYcf.lean.js
+++ b/dev/assets/UserGuide_chunk.md.Ii5YZi0L.lean.js
@@ -1 +1 @@
-import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Chunk YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/chunk.md","filePath":"UserGuide/chunk.md","lastUpdated":null}'),p={name:"UserGuide/chunk.md"},h=n("",36),l=[h];function t(e,k,r,d,E,g){return i(),a("div",null,l)}const o=s(p,[["render",t]]);export{c as __pageData,o as default};
+import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Chunk YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/chunk.md","filePath":"UserGuide/chunk.md","lastUpdated":null}'),p={name:"UserGuide/chunk.md"},h=n("",36),l=[h];function t(e,k,r,d,E,g){return i(),a("div",null,l)}const o=s(p,[["render",t]]);export{c as __pageData,o as default};
diff --git a/dev/assets/UserGuide_combine.md.3hvgqVGC.js b/dev/assets/UserGuide_combine.md.D-hnw42r.js
similarity index 98%
rename from dev/assets/UserGuide_combine.md.3hvgqVGC.js
rename to dev/assets/UserGuide_combine.md.D-hnw42r.js
index ca2364fc..5d488fd7 100644
--- a/dev/assets/UserGuide_combine.md.3hvgqVGC.js
+++ b/dev/assets/UserGuide_combine.md.D-hnw42r.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const g=JSON.parse('{"title":"Combine YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/combine.md","filePath":"UserGuide/combine.md","lastUpdated":null}'),e={name:"UserGuide/combine.md"},t=n(`

Combine YAXArrays

Data is often scattered across multiple files and corresponding arrays, e.g. one file per time step. This section describes methods on how to combine them into a single YAXArray.

cat along an existing dimension

Here we use cat to combine two arrays consisting of data from the first and the second half of a year into one single array containing the whole year. We glue the arrays along the first dimension using dims = 1: The resulting array whole_year still has one dimension, i.e. time, but with 12 instead of 6 elements.

julia
using YAXArrays
+import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.D-wbpLqx.js";const g=JSON.parse('{"title":"Combine YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/combine.md","filePath":"UserGuide/combine.md","lastUpdated":null}'),e={name:"UserGuide/combine.md"},t=n(`

Combine YAXArrays

Data is often scattered across multiple files and corresponding arrays, e.g. one file per time step. This section describes methods on how to combine them into a single YAXArray.

cat along an existing dimension

Here we use cat to combine two arrays consisting of data from the first and the second half of a year into one single array containing the whole year. We glue the arrays along the first dimension using dims = 1: The resulting array whole_year still has one dimension, i.e. time, but with 12 instead of 6 elements.

julia
using YAXArrays
 
 first_half = YAXArray((Dim{:time}(1:6),), rand(6))
 second_half = YAXArray((Dim{:time}(7:12),), rand(6))
diff --git a/dev/assets/UserGuide_combine.md.3hvgqVGC.lean.js b/dev/assets/UserGuide_combine.md.D-hnw42r.lean.js
similarity index 70%
rename from dev/assets/UserGuide_combine.md.3hvgqVGC.lean.js
rename to dev/assets/UserGuide_combine.md.D-hnw42r.lean.js
index d290951b..704f65b0 100644
--- a/dev/assets/UserGuide_combine.md.3hvgqVGC.lean.js
+++ b/dev/assets/UserGuide_combine.md.D-hnw42r.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const g=JSON.parse('{"title":"Combine YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/combine.md","filePath":"UserGuide/combine.md","lastUpdated":null}'),e={name:"UserGuide/combine.md"},t=n("",10),p=[t];function l(h,k,r,d,o,c){return a(),i("div",null,p)}const y=s(e,[["render",l]]);export{g as __pageData,y as default};
+import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.D-wbpLqx.js";const g=JSON.parse('{"title":"Combine YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/combine.md","filePath":"UserGuide/combine.md","lastUpdated":null}'),e={name:"UserGuide/combine.md"},t=n("",10),p=[t];function l(h,k,r,d,o,c){return a(),i("div",null,p)}const y=s(e,[["render",l]]);export{g as __pageData,y as default};
diff --git a/dev/assets/UserGuide_compute.md.Bsm7cUR3.js b/dev/assets/UserGuide_compute.md.9OcrDvwn.js
similarity index 94%
rename from dev/assets/UserGuide_compute.md.Bsm7cUR3.js
rename to dev/assets/UserGuide_compute.md.9OcrDvwn.js
index d89b72d4..5562805d 100644
--- a/dev/assets/UserGuide_compute.md.Bsm7cUR3.js
+++ b/dev/assets/UserGuide_compute.md.9OcrDvwn.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Compute YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/compute.md","filePath":"UserGuide/compute.md","lastUpdated":null}'),t={name:"UserGuide/compute.md"},p=n(`

Compute YAXArrays

This section describes how to create new YAXArrays by performing operations on them.

  • Use arithmetics to add or multiply numbers to each element of an array

  • Use map to apply a more complex functions to every element of an array

  • Use mapslices to reduce a dimension, e.g. to get the mean over all time steps

  • Use mapCube to apply complex functions on an array that may change any dimensions

Let's start by creating an example dataset:

julia
using YAXArrays
+import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Compute YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/compute.md","filePath":"UserGuide/compute.md","lastUpdated":null}'),t={name:"UserGuide/compute.md"},p=n(`

Compute YAXArrays

This section describes how to create new YAXArrays by performing operations on them.

  • Use arithmetics to add or multiply numbers to each element of an array

  • Use map to apply a more complex functions to every element of an array

  • Use mapslices to reduce a dimension, e.g. to get the mean over all time steps

  • Use mapCube to apply complex functions on an array that may change any dimensions

Let's start by creating an example dataset:

julia
using YAXArrays
 using Dates
 
 axlist = (
@@ -19,7 +19,7 @@ import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c
   :origin => "user guide"
 ├─────────────────────────────────────────────────────────────────── file size ┤ 
   file size: 35.16 KB
-└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.4487417751953737
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
+└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.9834433505013818
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
 │ 30×10×15 YAXArray{Float64,3} │
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
   ↓ time Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-30") ForwardOrdered Regular Points,
@@ -112,14 +112,14 @@ import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────────────────┘
-  ↓ →  1.0        1.28571   1.57143     …  4.42857    4.71429   5.0
-  1.0  0.0329329  0.968965  0.120337       0.143804   0.101359  0.322847
-  2.0  0.612      0.335156  0.720999       0.418612   0.434637  0.847666
-  3.0  0.420914   0.716497  0.670578       0.0826695  0.459483  0.929523
-  ⋮                                     ⋱                       ⋮
-  8.0  0.410058   0.7374    0.943053       0.385523   0.532123  0.994381
-  9.0  0.645081   0.79288   0.90868        0.288811   0.14046   0.984966
- 10.0  0.248894   0.705871  0.00744829  …  0.224858   0.92494   0.782546

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
+  ↓ →  1.0        1.28571   1.57143    …  4.42857   4.71429    5.0
+  1.0  0.318039   0.692256  0.28974       0.317792  0.0182202  0.390315
+  2.0  0.136076   0.449317  0.340401      0.937007  0.127343   0.406874
+  3.0  0.977188   0.136718  0.642726      0.101499  0.92248    0.987994
+  ⋮                                    ⋱                       ⋮
+  8.0  0.347368   0.206873  0.215695      0.761502  0.972913   0.0674906
+  9.0  0.0461837  0.817787  0.365603      0.773245  0.613749   0.0822654
+ 10.0  0.585923   0.25238   0.0913507  …  0.761125  0.190139   0.584065

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
 points_of_regions = map(enumerate(regions)) do (i,region)
     region => findall(isequal(region), regions_mat)
 end |> Dict |> sort
OrderedCollections.OrderedDict{String, Vector{CartesianIndex{2}}} with 4 entries:
diff --git a/dev/assets/UserGuide_compute.md.Bsm7cUR3.lean.js b/dev/assets/UserGuide_compute.md.9OcrDvwn.lean.js
similarity index 70%
rename from dev/assets/UserGuide_compute.md.Bsm7cUR3.lean.js
rename to dev/assets/UserGuide_compute.md.9OcrDvwn.lean.js
index e1c96fb4..c75f2a92 100644
--- a/dev/assets/UserGuide_compute.md.Bsm7cUR3.lean.js
+++ b/dev/assets/UserGuide_compute.md.9OcrDvwn.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Compute YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/compute.md","filePath":"UserGuide/compute.md","lastUpdated":null}'),t={name:"UserGuide/compute.md"},p=n("",60),l=[p];function e(h,k,r,d,o,E){return a(),i("div",null,l)}const y=s(t,[["render",e]]);export{c as __pageData,y as default};
+import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Compute YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/compute.md","filePath":"UserGuide/compute.md","lastUpdated":null}'),t={name:"UserGuide/compute.md"},p=n("",60),l=[p];function e(h,k,r,d,o,E){return a(),i("div",null,l)}const y=s(t,[["render",e]]);export{c as __pageData,y as default};
diff --git a/dev/assets/UserGuide_convert.md.BAP5IYC9.js b/dev/assets/UserGuide_convert.md.V3ot1yUx.js
similarity index 84%
rename from dev/assets/UserGuide_convert.md.BAP5IYC9.js
rename to dev/assets/UserGuide_convert.md.V3ot1yUx.js
index 04a39a1e..8ecaf4dc 100644
--- a/dev/assets/UserGuide_convert.md.BAP5IYC9.js
+++ b/dev/assets/UserGuide_convert.md.V3ot1yUx.js
@@ -1,4 +1,4 @@
-import{_ as s,c as a,o as n,a3 as i}from"./chunks/framework.BjKsQEKQ.js";const y=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),p={name:"UserGuide/convert.md"},e=i(`

Convert YAXArrays

This section describes how to convert variables from types of other Julia packages into YAXArrays and vice versa.

WARNING

YAXArrays is designed to work with large datasets that are way larger than the memory. However, most types are designed to work in memory. Those conversions are only possible if the entire dataset fits into memory. In addition, metadata might be lost during conversion.

Convert Base.Array

Convert Base.Array to YAXArray:

julia
using YAXArrays
+import{_ as s,c as a,o as n,a3 as i}from"./chunks/framework.D-wbpLqx.js";const y=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),p={name:"UserGuide/convert.md"},e=i(`

Convert YAXArrays

This section describes how to convert variables from types of other Julia packages into YAXArrays and vice versa.

WARNING

YAXArrays is designed to work with large datasets that are way larger than the memory. However, most types are designed to work in memory. Those conversions are only possible if the entire dataset fits into memory. In addition, metadata might be lost during conversion.

Convert Base.Array

Convert Base.Array to YAXArray:

julia
using YAXArrays
 
 m = rand(5,10)
 a = YAXArray(m)
╭──────────────────────────╮
@@ -11,11 +11,11 @@ import{_ as s,c as a,o as n,a3 as i}from"./chunks/framework.BjKsQEKQ.js";const y
 ├────────────────────────────────────────────────────────── file size ┤ 
   file size: 400.0 bytes
 └─────────────────────────────────────────────────────────────────────┘

Convert YAXArray to Base.Array:

julia
m2 = collect(a.data)
5×10 Matrix{Float64}:
- 0.218605  0.438946   0.561435  0.100201   …  0.754227   0.497832  0.988424
- 0.456409  0.282382   0.729159  0.641476      0.222657   0.586036  0.560896
- 0.496056  0.982327   0.365257  0.0689955     0.104668   0.188491  0.153693
- 0.604884  0.27352    0.174088  0.0322409     0.0892979  0.492756  0.432757
- 0.487935  0.0147544  0.387694  0.568254      0.187537   0.375085  0.366297

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
+ 0.250748   0.606155  0.685321   0.683486  …  0.853183   0.602267   0.756506
+ 0.394941   0.865179  0.0884358  0.072622     0.0751232  0.543502   0.86815
+ 0.740692   0.174079  0.832396   0.987598     0.83732    0.342369   0.876059
+ 0.972404   0.192129  0.421407   0.736639     0.353257   0.0570881  0.564018
+ 0.0873387  0.859362  0.66181    0.560379     0.186338   0.72339    0.684705

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
 
 lon, lat = X(25:1:30), Y(25:1:30)
 time = Ti(2000:2024)
@@ -43,13 +43,13 @@ import{_ as s,c as a,o as n,a3 as i}from"./chunks/framework.BjKsQEKQ.js";const y
 
 └─────────────────────────────────────────────────────────────┘
 [:, :, 1]
-  ↓ →  25         26           27          28         29         30
- 25     0.811518   0.00596874   0.338534    0.290113   0.529127   0.339448
- 26     0.544155   0.994666     0.578795    0.267121   0.109138   0.422948
- 27     0.33827    0.912082     0.606559    0.427245   0.513844   0.499061
- 28     0.132475   0.0288596    0.496312    0.468006   0.567599   0.0254621
- 29     0.93963    0.419694     0.89241     0.899684   0.691629   0.530887
- 30     0.975192   0.861975     0.0931151   0.836894   0.994368   0.204639

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
+  ↓ →  25          26         27         28          29          30
+ 25     0.665024    0.763095   0.141595   0.809514    0.0668261   0.286677
+ 26     0.49657     0.820772   0.675138   0.0934071   0.827419    0.53963
+ 27     0.0885343   0.751802   0.493651   0.98674     0.490318    0.488797
+ 28     0.184555    0.547323   0.335812   0.484735    0.996668    0.427747
+ 29     0.623178    0.211379   0.762215   0.742236    0.621469    0.0371825
+ 30     0.189827    0.454855   0.728284   0.871052    0.601579    0.973524

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
 using YAXArrayBase
 
 dim_arr = rand(X(1:5), Y(10.0:15.0), metadata = Dict{String, Any}())
@@ -70,9 +70,9 @@ import{_ as s,c as a,o as n,a3 as i}from"./chunks/framework.BjKsQEKQ.js";const y
 ├──────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────┘
- ↓ →  10.0       11.0       12.0       13.0       14.0       15.0
- 1     0.608907   0.123252   0.250806   0.51111    0.995527   0.354258
- 2     0.824792   0.505795   0.225712   0.645522   0.983289   0.373787
- 3     0.425755   0.547815   0.927177   0.15407    0.645345   0.222943
- 4     0.260391   0.872838   0.790217   0.351627   0.172715   0.311381
- 5     0.200382   0.901526   0.371273   0.425517   0.327439   0.755546

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

`,25),l=[e];function t(r,h,d,k,o,c){return n(),a("div",null,l)}const E=s(p,[["render",t]]);export{y as __pageData,E as default}; + ↓ → 10.0 11.0 12.0 13.0 14.0 15.0 + 1 0.0356227 0.307849 0.546663 0.420426 0.0096067 0.98121 + 2 0.385317 0.405208 0.254633 0.662609 0.690995 0.126389 + 3 0.280651 0.122665 0.73653 0.0574339 0.55694 0.99227 + 4 0.216638 0.772677 0.501288 0.726186 0.355128 0.833617 + 5 0.401606 0.37699 0.0709768 0.290475 0.777094 0.23261

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

`,25),l=[e];function t(r,h,d,k,o,c){return n(),a("div",null,l)}const E=s(p,[["render",t]]);export{y as __pageData,E as default}; diff --git a/dev/assets/UserGuide_convert.md.BAP5IYC9.lean.js b/dev/assets/UserGuide_convert.md.V3ot1yUx.lean.js similarity index 70% rename from dev/assets/UserGuide_convert.md.BAP5IYC9.lean.js rename to dev/assets/UserGuide_convert.md.V3ot1yUx.lean.js index 0ea3277e..c3810659 100644 --- a/dev/assets/UserGuide_convert.md.BAP5IYC9.lean.js +++ b/dev/assets/UserGuide_convert.md.V3ot1yUx.lean.js @@ -1 +1 @@ -import{_ as s,c as a,o as n,a3 as i}from"./chunks/framework.BjKsQEKQ.js";const y=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),p={name:"UserGuide/convert.md"},e=i("",25),l=[e];function t(r,h,d,k,o,c){return n(),a("div",null,l)}const E=s(p,[["render",t]]);export{y as __pageData,E as default}; +import{_ as s,c as a,o as n,a3 as i}from"./chunks/framework.D-wbpLqx.js";const y=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),p={name:"UserGuide/convert.md"},e=i("",25),l=[e];function t(r,h,d,k,o,c){return n(),a("div",null,l)}const E=s(p,[["render",t]]);export{y as __pageData,E as default}; diff --git a/dev/assets/UserGuide_create.md.CSoeN-m2.js b/dev/assets/UserGuide_create.md.CDGL9j1t.js similarity index 99% rename from dev/assets/UserGuide_create.md.CSoeN-m2.js rename to dev/assets/UserGuide_create.md.CDGL9j1t.js index b293e19e..0feabc31 100644 --- a/dev/assets/UserGuide_create.md.CSoeN-m2.js +++ b/dev/assets/UserGuide_create.md.CDGL9j1t.js @@ -1,4 +1,4 @@ -import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Create YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/create.md","filePath":"UserGuide/create.md","lastUpdated":null}'),t={name:"UserGuide/create.md"},e=n(`

Create YAXArrays and Datasets

This section describes how to create arrays and datasets by filling values directly.

Create a YAXArray

We can create a new YAXArray by filling the values directly:

julia
using YAXArrays
+import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Create YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/create.md","filePath":"UserGuide/create.md","lastUpdated":null}'),t={name:"UserGuide/create.md"},e=n(`

Create YAXArrays and Datasets

This section describes how to create arrays and datasets by filling values directly.

Create a YAXArray

We can create a new YAXArray by filling the values directly:

julia
using YAXArrays
 a1 = YAXArray(rand(10, 20, 5))
╭─────────────────────────────╮
 │ 10×20×5 YAXArray{Float64,3} │
 ├─────────────────────────────┴────────────────────────────────── dims ┐
diff --git a/dev/assets/UserGuide_create.md.CSoeN-m2.lean.js b/dev/assets/UserGuide_create.md.CDGL9j1t.lean.js
similarity index 70%
rename from dev/assets/UserGuide_create.md.CSoeN-m2.lean.js
rename to dev/assets/UserGuide_create.md.CDGL9j1t.lean.js
index 75e1349f..f70a633f 100644
--- a/dev/assets/UserGuide_create.md.CSoeN-m2.lean.js
+++ b/dev/assets/UserGuide_create.md.CDGL9j1t.lean.js
@@ -1 +1 @@
-import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Create YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/create.md","filePath":"UserGuide/create.md","lastUpdated":null}'),t={name:"UserGuide/create.md"},e=n("",16),p=[e];function l(h,k,r,d,E,g){return i(),a("div",null,p)}const y=s(t,[["render",l]]);export{c as __pageData,y as default};
+import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Create YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/create.md","filePath":"UserGuide/create.md","lastUpdated":null}'),t={name:"UserGuide/create.md"},e=n("",16),p=[e];function l(h,k,r,d,E,g){return i(),a("div",null,p)}const y=s(t,[["render",l]]);export{c as __pageData,y as default};
diff --git a/dev/assets/UserGuide_faq.md.C2rIR_TL.js b/dev/assets/UserGuide_faq.md.P26McMwi.js
similarity index 99%
rename from dev/assets/UserGuide_faq.md.C2rIR_TL.js
rename to dev/assets/UserGuide_faq.md.P26McMwi.js
index 9c9a0226..837d601c 100644
--- a/dev/assets/UserGuide_faq.md.C2rIR_TL.js
+++ b/dev/assets/UserGuide_faq.md.P26McMwi.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const h="/YAXArrays.jl/dev/assets/zbvuiga.CzJduwTV.jpeg",c=JSON.parse('{"title":"Frequently Asked Questions (FAQ)","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/faq.md","filePath":"UserGuide/faq.md","lastUpdated":null}'),e={name:"UserGuide/faq.md"},l=n(`

Frequently Asked Questions (FAQ)

The purpose of this section is to do a collection of small convinient pieces of code on how to do simple things.

Extract the axes names from a Cube

julia
using YAXArrays
+import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.D-wbpLqx.js";const h="/YAXArrays.jl/dev/assets/yvbiuxj.3Hpo7gAL.jpeg",c=JSON.parse('{"title":"Frequently Asked Questions (FAQ)","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/faq.md","filePath":"UserGuide/faq.md","lastUpdated":null}'),e={name:"UserGuide/faq.md"},l=n(`

Frequently Asked Questions (FAQ)

The purpose of this section is to do a collection of small convinient pieces of code on how to do simple things.

Extract the axes names from a Cube

julia
using YAXArrays
 using DimensionalData
julia
julia> c = YAXArray(rand(10, 10, 5))
╭─────────────────────────────╮
 10×10×5 YAXArray{Float64,3}
 ├─────────────────────────────┴────────────────────────────────── dims ┐
diff --git a/dev/assets/UserGuide_faq.md.C2rIR_TL.lean.js b/dev/assets/UserGuide_faq.md.P26McMwi.lean.js
similarity index 73%
rename from dev/assets/UserGuide_faq.md.C2rIR_TL.lean.js
rename to dev/assets/UserGuide_faq.md.P26McMwi.lean.js
index 48ad7650..f89feed4 100644
--- a/dev/assets/UserGuide_faq.md.C2rIR_TL.lean.js
+++ b/dev/assets/UserGuide_faq.md.P26McMwi.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const h="/YAXArrays.jl/dev/assets/zbvuiga.CzJduwTV.jpeg",c=JSON.parse('{"title":"Frequently Asked Questions (FAQ)","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/faq.md","filePath":"UserGuide/faq.md","lastUpdated":null}'),e={name:"UserGuide/faq.md"},l=n("",86),t=[l];function k(p,d,r,g,y,o){return a(),i("div",null,t)}const f=s(e,[["render",k]]);export{c as __pageData,f as default};
+import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.D-wbpLqx.js";const h="/YAXArrays.jl/dev/assets/yvbiuxj.3Hpo7gAL.jpeg",c=JSON.parse('{"title":"Frequently Asked Questions (FAQ)","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/faq.md","filePath":"UserGuide/faq.md","lastUpdated":null}'),e={name:"UserGuide/faq.md"},l=n("",86),t=[l];function k(p,d,r,g,y,o){return a(),i("div",null,t)}const f=s(e,[["render",k]]);export{c as __pageData,f as default};
diff --git a/dev/assets/UserGuide_group.md.DeJXXSN0.js b/dev/assets/UserGuide_group.md.B84Hc12z.js
similarity index 95%
rename from dev/assets/UserGuide_group.md.DeJXXSN0.js
rename to dev/assets/UserGuide_group.md.B84Hc12z.js
index 02d3d2fb..8c53a769 100644
--- a/dev/assets/UserGuide_group.md.DeJXXSN0.js
+++ b/dev/assets/UserGuide_group.md.B84Hc12z.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const h="/YAXArrays.jl/dev/assets/vucyfpd.DxXNIu19.png",o=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),l={name:"UserGuide/group.md"},e=n(`

Group YAXArrays and Datasets

The following examples will use the groupby function to calculate temporal and spatial averages.

julia
using YAXArrays, DimensionalData
+import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.D-wbpLqx.js";const h="/YAXArrays.jl/dev/assets/ldaihxz.CBBZcGwj.png",o=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),l={name:"UserGuide/group.md"},e=n(`

Group YAXArrays and Datasets

The following examples will use the groupby function to calculate temporal and spatial averages.

julia
using YAXArrays, DimensionalData
 using NetCDF
 using Downloads
 using Dates
@@ -54,7 +54,7 @@ import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const h
  :Dec_Jan_Feb  275×205×1 YAXArray
  :Mar_Apr_May  275×205×1 YAXArray
  :Jun_Jul_Aug  275×205×1 YAXArray
- :Sep_Oct_Nov  275×205×1 YAXArray

dropdims

Note that now the time dimension has length one, we can use dropdims to remove it

julia
julia> mean_g = dropdims.(mean_g, dims=:Ti)
╭──────────────────────────────────────────────────╮
+ :Sep_Oct_Nov  275×205×1 YAXArray

dropdims

Note that now the time dimension has length one, we can use dropdims to remove it

julia
julia> mean_g = dropdims.(mean_g, dims=:Ti)
╭──────────────────────────────────────────────────╮
 4-element DimGroupByArray{YAXArray{Float64,2},1}
 ├──────────────────────────────────────────────────┴───────────────────── dims ┐
 Ti Categorical{Symbol} [:Dec_Jan_Feb, :Mar_Apr_May, :Jun_Jul_Aug, :Sep_Oct_Nov] Unordered
@@ -67,7 +67,7 @@ import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const h
  :Dec_Jan_Feb  275×205 YAXArray
  :Mar_Apr_May  275×205 YAXArray
  :Jun_Jul_Aug  275×205 YAXArray
- :Sep_Oct_Nov  275×205 YAXArray

seasons

Due to the groupby function we will obtain new grouping names, in this case in the time dimension:

julia
seasons_g = lookup(mean_g, :Ti)
Categorical{Symbol} Unordered
+ :Sep_Oct_Nov  275×205 YAXArray

seasons

Due to the groupby function we will obtain new grouping names, in this case in the time dimension:

julia
seasons_g = lookup(mean_g, :Ti)
Categorical{Symbol} Unordered
 wrapping: 4-element Vector{Symbol}:
  :Dec_Jan_Feb
  :Mar_Apr_May
@@ -107,7 +107,7 @@ import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const h
  :Dec_Jan_Feb  1-element YAXArray
  :Mar_Apr_May  1-element YAXArray
  :Jun_Jul_Aug  1-element YAXArray
- :Sep_Oct_Nov  1-element YAXArray

weights

Weight the seasonal groups by sum_days

julia
julia> weights = map(./, g_tempo, sum_days)
╭──────────────────────────────────────────────────╮
+ :Sep_Oct_Nov  1-element YAXArray

weights

Weight the seasonal groups by sum_days

julia
julia> weights = map(./, g_tempo, sum_days)
╭──────────────────────────────────────────────────╮
 4-element DimGroupByArray{YAXArray{Float64,1},1}
 ├──────────────────────────────────────────────────┴───────────────────── dims ┐
 Ti Categorical{Symbol} [:Dec_Jan_Feb, :Mar_Apr_May, :Jun_Jul_Aug, :Sep_Oct_Nov] Unordered
diff --git a/dev/assets/UserGuide_group.md.DeJXXSN0.lean.js b/dev/assets/UserGuide_group.md.B84Hc12z.lean.js
similarity index 73%
rename from dev/assets/UserGuide_group.md.DeJXXSN0.lean.js
rename to dev/assets/UserGuide_group.md.B84Hc12z.lean.js
index 82589286..3353f0ad 100644
--- a/dev/assets/UserGuide_group.md.DeJXXSN0.lean.js
+++ b/dev/assets/UserGuide_group.md.B84Hc12z.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const h="/YAXArrays.jl/dev/assets/vucyfpd.DxXNIu19.png",o=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),l={name:"UserGuide/group.md"},e=n("",62),p=[e];function t(k,d,r,g,y,f){return a(),i("div",null,p)}const c=s(l,[["render",t]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a3 as n}from"./chunks/framework.D-wbpLqx.js";const h="/YAXArrays.jl/dev/assets/ldaihxz.CBBZcGwj.png",o=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),l={name:"UserGuide/group.md"},e=n("",62),p=[e];function t(k,d,r,g,y,f){return a(),i("div",null,p)}const c=s(l,[["render",t]]);export{o as __pageData,c as default};
diff --git a/dev/assets/UserGuide_read.md.BE3pyKwr.js b/dev/assets/UserGuide_read.md.DMkMRsS0.js
similarity index 99%
rename from dev/assets/UserGuide_read.md.BE3pyKwr.js
rename to dev/assets/UserGuide_read.md.DMkMRsS0.js
index fb2167ab..1679008d 100644
--- a/dev/assets/UserGuide_read.md.BE3pyKwr.js
+++ b/dev/assets/UserGuide_read.md.DMkMRsS0.js
@@ -1,4 +1,4 @@
-import{_ as a,c as s,o as n,a3 as t}from"./chunks/framework.BjKsQEKQ.js";const k=JSON.parse('{"title":"Read YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/read.md","filePath":"UserGuide/read.md","lastUpdated":null}'),e={name:"UserGuide/read.md"},i=t(`

Read YAXArrays and Datasets

This section describes how to read files, URLs, and directories into YAXArrays and datasets.

Read Zarr

Open a Zarr store as a Dataset:

julia
using YAXArrays
+import{_ as a,c as s,o as n,a3 as t}from"./chunks/framework.D-wbpLqx.js";const k=JSON.parse('{"title":"Read YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/read.md","filePath":"UserGuide/read.md","lastUpdated":null}'),e={name:"UserGuide/read.md"},i=t(`

Read YAXArrays and Datasets

This section describes how to read files, URLs, and directories into YAXArrays and datasets.

Read Zarr

Open a Zarr store as a Dataset:

julia
using YAXArrays
 using Zarr
 path="gs://cmip6/CMIP6/ScenarioMIP/DKRZ/MPI-ESM1-2-HR/ssp585/r1i1p1f1/3hr/tas/gn/v20190710/"
 store = zopen(path, consolidated=true)
diff --git a/dev/assets/UserGuide_read.md.BE3pyKwr.lean.js b/dev/assets/UserGuide_read.md.DMkMRsS0.lean.js
similarity index 70%
rename from dev/assets/UserGuide_read.md.BE3pyKwr.lean.js
rename to dev/assets/UserGuide_read.md.DMkMRsS0.lean.js
index aa7dbf2b..46bba495 100644
--- a/dev/assets/UserGuide_read.md.BE3pyKwr.lean.js
+++ b/dev/assets/UserGuide_read.md.DMkMRsS0.lean.js
@@ -1 +1 @@
-import{_ as a,c as s,o as n,a3 as t}from"./chunks/framework.BjKsQEKQ.js";const k=JSON.parse('{"title":"Read YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/read.md","filePath":"UserGuide/read.md","lastUpdated":null}'),e={name:"UserGuide/read.md"},i=t("",20),p=[i];function l(o,r,d,u,h,c){return n(),s("div",null,p)}const q=a(e,[["render",l]]);export{k as __pageData,q as default};
+import{_ as a,c as s,o as n,a3 as t}from"./chunks/framework.D-wbpLqx.js";const k=JSON.parse('{"title":"Read YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/read.md","filePath":"UserGuide/read.md","lastUpdated":null}'),e={name:"UserGuide/read.md"},i=t("",20),p=[i];function l(o,r,d,u,h,c){return n(),s("div",null,p)}const q=a(e,[["render",l]]);export{k as __pageData,q as default};
diff --git a/dev/assets/UserGuide_select.md.1p52rG-s.js b/dev/assets/UserGuide_select.md.C45g19Fh.js
similarity index 99%
rename from dev/assets/UserGuide_select.md.1p52rG-s.js
rename to dev/assets/UserGuide_select.md.C45g19Fh.js
index 92e31083..6f24e161 100644
--- a/dev/assets/UserGuide_select.md.1p52rG-s.js
+++ b/dev/assets/UserGuide_select.md.C45g19Fh.js
@@ -1,4 +1,4 @@
-import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Select YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/select.md","filePath":"UserGuide/select.md","lastUpdated":null}'),e={name:"UserGuide/select.md"},t=n(`

Select YAXArrays and Datasets

The dimensions or axes of an YAXArray are named making it easier to subset or query certain ranges of an array. Let's open an example Dataset used to select certain elements:

julia
using YAXArrays
+import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Select YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/select.md","filePath":"UserGuide/select.md","lastUpdated":null}'),e={name:"UserGuide/select.md"},t=n(`

Select YAXArrays and Datasets

The dimensions or axes of an YAXArray are named making it easier to subset or query certain ranges of an array. Let's open an example Dataset used to select certain elements:

julia
using YAXArrays
 using NetCDF
 using Downloads: download
 
diff --git a/dev/assets/UserGuide_select.md.1p52rG-s.lean.js b/dev/assets/UserGuide_select.md.C45g19Fh.lean.js
similarity index 70%
rename from dev/assets/UserGuide_select.md.1p52rG-s.lean.js
rename to dev/assets/UserGuide_select.md.C45g19Fh.lean.js
index 83ef7528..97c751cd 100644
--- a/dev/assets/UserGuide_select.md.1p52rG-s.lean.js
+++ b/dev/assets/UserGuide_select.md.C45g19Fh.lean.js
@@ -1 +1 @@
-import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Select YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/select.md","filePath":"UserGuide/select.md","lastUpdated":null}'),e={name:"UserGuide/select.md"},t=n("",56),p=[t];function l(h,o,k,d,r,u){return i(),a("div",null,p)}const y=s(e,[["render",l]]);export{c as __pageData,y as default};
+import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Select YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/select.md","filePath":"UserGuide/select.md","lastUpdated":null}'),e={name:"UserGuide/select.md"},t=n("",56),p=[t];function l(h,o,k,d,r,u){return i(),a("div",null,p)}const y=s(e,[["render",l]]);export{c as __pageData,y as default};
diff --git a/dev/assets/UserGuide_types.md.BDUDJz2J.js b/dev/assets/UserGuide_types.md.BDUDJz2J.js
new file mode 100644
index 00000000..ff5b8c3e
--- /dev/null
+++ b/dev/assets/UserGuide_types.md.BDUDJz2J.js
@@ -0,0 +1 @@
+import{_ as e,c as a,o as t,a3 as r}from"./chunks/framework.D-wbpLqx.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/types.md","filePath":"UserGuide/types.md","lastUpdated":null}'),s={name:"UserGuide/types.md"},o=r('

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

',12),n=[o];function i(d,l,c,h,m,u){return t(),a("div",null,n)}const f=e(s,[["render",i]]);export{y as __pageData,f as default}; diff --git a/dev/assets/UserGuide_types.md.oM5YvHuw.lean.js b/dev/assets/UserGuide_types.md.BDUDJz2J.lean.js similarity index 68% rename from dev/assets/UserGuide_types.md.oM5YvHuw.lean.js rename to dev/assets/UserGuide_types.md.BDUDJz2J.lean.js index fed94f46..5be1acac 100644 --- a/dev/assets/UserGuide_types.md.oM5YvHuw.lean.js +++ b/dev/assets/UserGuide_types.md.BDUDJz2J.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a3 as r}from"./chunks/framework.BjKsQEKQ.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/types.md","filePath":"UserGuide/types.md","lastUpdated":null}'),s={name:"UserGuide/types.md"},o=r("",12),n=[o];function i(d,l,c,h,m,u){return t(),a("div",null,n)}const f=e(s,[["render",i]]);export{y as __pageData,f as default}; +import{_ as e,c as a,o as t,a3 as r}from"./chunks/framework.D-wbpLqx.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/types.md","filePath":"UserGuide/types.md","lastUpdated":null}'),s={name:"UserGuide/types.md"},o=r("",12),n=[o];function i(d,l,c,h,m,u){return t(),a("div",null,n)}const f=e(s,[["render",i]]);export{y as __pageData,f as default}; diff --git a/dev/assets/UserGuide_types.md.oM5YvHuw.js b/dev/assets/UserGuide_types.md.oM5YvHuw.js deleted file mode 100644 index 95fabb2f..00000000 --- a/dev/assets/UserGuide_types.md.oM5YvHuw.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,o as t,a3 as r}from"./chunks/framework.BjKsQEKQ.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/types.md","filePath":"UserGuide/types.md","lastUpdated":null}'),s={name:"UserGuide/types.md"},o=r('

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

',12),n=[o];function i(d,l,c,h,m,u){return t(),a("div",null,n)}const f=e(s,[["render",i]]);export{y as __pageData,f as default}; diff --git a/dev/assets/UserGuide_write.md.D_w8puau.js b/dev/assets/UserGuide_write.md.17Th7D7-.js similarity index 99% rename from dev/assets/UserGuide_write.md.D_w8puau.js rename to dev/assets/UserGuide_write.md.17Th7D7-.js index e69a5dc5..afc72bff 100644 --- a/dev/assets/UserGuide_write.md.D_w8puau.js +++ b/dev/assets/UserGuide_write.md.17Th7D7-.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a3 as t}from"./chunks/framework.BjKsQEKQ.js";const u=JSON.parse('{"title":"Write YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/write.md","filePath":"UserGuide/write.md","lastUpdated":null}'),e={name:"UserGuide/write.md"},n=t(`

Write YAXArrays and Datasets

Create an example Dataset:

julia
using YAXArrays
+import{_ as s,c as i,o as a,a3 as t}from"./chunks/framework.D-wbpLqx.js";const u=JSON.parse('{"title":"Write YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/write.md","filePath":"UserGuide/write.md","lastUpdated":null}'),e={name:"UserGuide/write.md"},n=t(`

Write YAXArrays and Datasets

Create an example Dataset:

julia
using YAXArrays
 using NetCDF
 using Downloads: download
 
@@ -12,7 +12,7 @@ import{_ as s,c as i,o as a,a3 as t}from"./chunks/framework.BjKsQEKQ.js";const u
 tos, 
 Properties: Dict{String, Any}("cmor_version" => 0.96f0, "references" => "Dufresne et al, Journal of Climate, 2015, vol XX, p 136", "realization" => 1, "Conventions" => "CF-1.0", "contact" => "Sebastien Denvil, sebastien.denvil@ipsl.jussieu.fr", "history" => "YYYY/MM/JJ: data generated; YYYY/MM/JJ+1 data transformed  At 16:37:23 on 01/11/2005, CMOR rewrote data to comply with CF standards and IPCC Fourth Assessment requirements", "table_id" => "Table O1 (13 November 2004)", "source" => "IPSL-CM4_v1 (2003) : atmosphere : LMDZ (IPSL-CM4_IPCC, 96x71x19) ; ocean ORCA2 (ipsl_cm4_v1_8, 2x2L31); sea ice LIM (ipsl_cm4_v", "title" => "IPSL  model output prepared for IPCC Fourth Assessment SRES A2 experiment", "experiment_id" => "SRES A2 experiment"…)

Write Zarr

Save a single YAXArray to a directory:

julia
using Zarr
 savecube(ds.tos, "tos.zarr", driver=:zarr)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.zarr", driver=:zarr)

Write NetCDF

Save a single YAXArray to a directory:

julia
using NetCDF
-savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

# YAXArrays.Datasets.savedatasetFunction.

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source


Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
+savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

# YAXArrays.Datasets.savedatasetFunction.

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source


Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
 savedataset(ds2, path="ds.zarr", backend=:zarr, append=true)
julia
julia> open_dataset("ds.zarr", driver=:zarr)
YAXArray Dataset
 Shared Axes:
 ()
diff --git a/dev/assets/UserGuide_write.md.D_w8puau.lean.js b/dev/assets/UserGuide_write.md.17Th7D7-.lean.js
similarity index 70%
rename from dev/assets/UserGuide_write.md.D_w8puau.lean.js
rename to dev/assets/UserGuide_write.md.17Th7D7-.lean.js
index c42cf19d..09aa44c0 100644
--- a/dev/assets/UserGuide_write.md.D_w8puau.lean.js
+++ b/dev/assets/UserGuide_write.md.17Th7D7-.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a3 as t}from"./chunks/framework.BjKsQEKQ.js";const u=JSON.parse('{"title":"Write YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/write.md","filePath":"UserGuide/write.md","lastUpdated":null}'),e={name:"UserGuide/write.md"},n=t("",39),l=[n];function h(p,k,r,d,o,g){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{u as __pageData,y as default};
+import{_ as s,c as i,o as a,a3 as t}from"./chunks/framework.D-wbpLqx.js";const u=JSON.parse('{"title":"Write YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/write.md","filePath":"UserGuide/write.md","lastUpdated":null}'),e={name:"UserGuide/write.md"},n=t("",39),l=[n];function h(p,k,r,d,o,g){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{u as __pageData,y as default};
diff --git a/dev/assets/api.md.BD2SAY5k.lean.js b/dev/assets/api.md.BD2SAY5k.lean.js
deleted file mode 100644
index 01794d76..00000000
--- a/dev/assets/api.md.BD2SAY5k.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as e,c as a,o as s,a3 as i}from"./chunks/framework.BjKsQEKQ.js";const f=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),t={name:"api.md"},r=i("",100),o=[r];function l(n,d,p,c,b,h){return s(),a("div",null,o)}const y=e(t,[["render",l]]);export{f as __pageData,y as default};
diff --git a/dev/assets/api.md.BD2SAY5k.js b/dev/assets/api.md.DwO_Lp_-.js
similarity index 91%
rename from dev/assets/api.md.BD2SAY5k.js
rename to dev/assets/api.md.DwO_Lp_-.js
index a094f495..8132a8a6 100644
--- a/dev/assets/api.md.BD2SAY5k.js
+++ b/dev/assets/api.md.DwO_Lp_-.js
@@ -1,13 +1,13 @@
-import{_ as e,c as a,o as s,a3 as i}from"./chunks/framework.BjKsQEKQ.js";const f=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),t={name:"api.md"},r=i(`

API Reference

This section describes all available functions of this package.

Public API

# YAXArrays.getAxisMethod.
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source


# YAXArrays.CubesModule.

The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that

source


# YAXArrays.Cubes.YAXArrayType.
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source


# YAXArrays.Cubes.caxesFunction.

Returns the axes of a Cube

source


# YAXArrays.Cubes.caxesMethod.
julia
caxes

Embeds Cube inside a new Cube

source


# YAXArrays.Cubes.concatenatecubesMethod.
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source


# YAXArrays.Cubes.readcubedataMethod.
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source


# YAXArrays.Cubes.setchunksMethod.
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source


# YAXArrays.Cubes.subsetcubeFunction.

This function calculates a subset of a cube's data

source


# YAXArrays.DAT.InDimsType.
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source


# YAXArrays.DAT.MovingWindowType.
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source


# YAXArrays.DAT.OutDimsMethod.
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source


# YAXArrays.DAT.CubeTableMethod.
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source


# YAXArrays.DAT.cubefittableMethod.
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source


# YAXArrays.DAT.fittableMethod.
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source


# YAXArrays.DAT.mapCubeMethod.
julia
mapCube(fun, cube, addargs...;kwargs...)
+import{_ as e,c as a,o as s,a3 as i}from"./chunks/framework.D-wbpLqx.js";const y=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),t={name:"api.md"},r=i(`

API Reference

This section describes all available functions of this package.

Public API

# YAXArrays.getAxisMethod.
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source


# YAXArrays.CubesModule.

The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that

source


# YAXArrays.Cubes.YAXArrayType.
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source


# YAXArrays.Cubes.caxesFunction.

Returns the axes of a Cube

source


# YAXArrays.Cubes.caxesMethod.
julia
caxes

Embeds Cube inside a new Cube

source


# YAXArrays.Cubes.concatenatecubesMethod.
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source


# YAXArrays.Cubes.readcubedataMethod.
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source


# YAXArrays.Cubes.setchunksMethod.
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source


# YAXArrays.Cubes.subsetcubeFunction.

This function calculates a subset of a cube's data

source


# YAXArrays.DAT.InDimsType.
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source


# YAXArrays.DAT.MovingWindowType.
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source


# YAXArrays.DAT.OutDimsMethod.
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source


# YAXArrays.DAT.CubeTableMethod.
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source


# YAXArrays.DAT.cubefittableMethod.
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source


# YAXArrays.DAT.fittableMethod.
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source


# YAXArrays.DAT.mapCubeMethod.
julia
mapCube(fun, cube, addargs...;kwargs...)
 
 Map a given function \`fun\` over slices of all cubes of the dataset \`ds\`. 
 Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.
 For Datasets, only one output cube can be specified.
 In contrast to the mapCube function for cubes, additional arguments for the inner function should be set as keyword arguments.
 
-For the specific keyword arguments see the docstring of the mapCube function for cubes.

source


# YAXArrays.DAT.mapCubeMethod.
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB\`\`\` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source


# YAXArrays.Datasets.DatasetType.
julia
Dataset object which stores an \`OrderedDict\` of YAXArrays with Symbol keys. 
+For the specific keyword arguments see the docstring of the mapCube function for cubes.

source


# YAXArrays.DAT.mapCubeMethod.
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB\`\`\` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source


# YAXArrays.Datasets.DatasetType.
julia
Dataset object which stores an \`OrderedDict\` of YAXArrays with Symbol keys. 
 a dictionary of CubeAxes and a Dictionary of general properties. 
-A dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source


# YAXArrays.Datasets.DatasetMethod.

Dataset(; properties = Dict{String,Any}, cubes...)

Construct a YAXArray Dataset with global attributes properties a and a list of named YAXArrays cubes...

source


# YAXArrays.Datasets.CubeMethod.
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source


# YAXArrays.Datasets.open_datasetMethod.

open_dataset(g; driver=:all)

Open the dataset at g with the given driver. The default driver will search for available drivers and tries to detect the useable driver from the filename extension.

source


# YAXArrays.Datasets.savecubeMethod.
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source


# YAXArrays.Datasets.savedatasetMethod.

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source


# YAXArrays.Datasets.to_datasetMethod.

to_dataset(c;datasetaxis = "Variable", layername = "layer")

Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name layername

source


Internal API

# YAXArrays.YAXDefaultsConstant.

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source


# YAXArrays.findAxisMethod.
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source


# YAXArrays.getOutAxisMethod.
julia
getOutAxis

source


# YAXArrays.get_descriptorMethod.
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source


# YAXArrays.match_axisMethod.
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
+A dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source


# YAXArrays.Datasets.DatasetMethod.

Dataset(; properties = Dict{String,Any}, cubes...)

Construct a YAXArray Dataset with global attributes properties a and a list of named YAXArrays cubes...

source


# YAXArrays.Datasets.CubeMethod.
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source


# YAXArrays.Datasets.open_datasetMethod.

open_dataset(g; driver=:all)

Open the dataset at g with the given driver. The default driver will search for available drivers and tries to detect the useable driver from the filename extension.

source


# YAXArrays.Datasets.savecubeMethod.
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source


# YAXArrays.Datasets.savedatasetMethod.

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source


# YAXArrays.Datasets.to_datasetMethod.

to_dataset(c;datasetaxis = "Variable", layername = "layer")

Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name layername

source


Internal API

# YAXArrays.YAXDefaultsConstant.

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source


# YAXArrays.findAxisMethod.
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source


# YAXArrays.getOutAxisMethod.
julia
getOutAxis

source


# YAXArrays.get_descriptorMethod.
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source


# YAXArrays.match_axisMethod.
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
 This is used to find different axes and to make certain axis description the same.
-For example to disregard differences of captialisation.

source


# YAXArrays.Cubes.CleanMeType.
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source


# YAXArrays.Cubes.cleanMethod.
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source


# YAXArrays.Cubes.copydataMethod.
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source


# YAXArrays.Cubes.optifuncMethod.
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source


# YAXArrays.DAT.DATConfigType.

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source


# YAXArrays.DAT.InputCubeType.

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source


# YAXArrays.DAT.OutputCubeType.

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source


# YAXArrays.DAT.YAXColumnType.
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source


# YAXArrays.DAT.cmpcachmissesMethod.

Function that compares two cache miss specifiers by their importance

source


# YAXArrays.DAT.getFrontPermMethod.

Calculate an axis permutation that brings the wanted dimensions to the front

source


# YAXArrays.DAT.getLoopCacheSizeMethod.

Calculate optimal Cache size to DAT operation

source


# YAXArrays.DAT.getOuttypeMethod.
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source


# YAXArrays.DAT.getloopchunksMethod.
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.
-This computation of the size of the chunks is handled by [\`DiskArrays.approx_chunksize\`](@ref)

source


# YAXArrays.DAT.permuteloopaxesMethod.
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source


# YAXArrays.Cubes.setchunksMethod.
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source


# YAXArrays.Datasets.collectfromhandleMethod.

Extracts a YAXArray from a dataset handle that was just created from a arrayinfo

source


# YAXArrays.Datasets.createdatasetMethod.

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

source


# YAXArrays.Datasets.getarrayinfoMethod.

Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair

source


# YAXArrays.Datasets.testrangeMethod.

Test if data in x can be approximated by a step range

source


`,100),o=[r];function l(n,d,p,c,b,h){return s(),a("div",null,o)}const y=e(t,[["render",l]]);export{f as __pageData,y as default}; +For example to disregard differences of captialisation.

source


# YAXArrays.Cubes.CleanMeType.
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source


# YAXArrays.Cubes.cleanMethod.
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source


# YAXArrays.Cubes.copydataMethod.
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source


# YAXArrays.Cubes.optifuncMethod.
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source


# YAXArrays.DAT.DATConfigType.

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source


# YAXArrays.DAT.InputCubeType.

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source


# YAXArrays.DAT.OutputCubeType.

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source


# YAXArrays.DAT.YAXColumnType.
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source


# YAXArrays.DAT.cmpcachmissesMethod.

Function that compares two cache miss specifiers by their importance

source


# YAXArrays.DAT.getFrontPermMethod.

Calculate an axis permutation that brings the wanted dimensions to the front

source


# YAXArrays.DAT.getLoopCacheSizeMethod.

Calculate optimal Cache size to DAT operation

source


# YAXArrays.DAT.getOuttypeMethod.
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source


# YAXArrays.DAT.getloopchunksMethod.
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.
+This computation of the size of the chunks is handled by [\`DiskArrays.approx_chunksize\`](@ref)

source


# YAXArrays.DAT.permuteloopaxesMethod.
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source


# YAXArrays.Cubes.setchunksMethod.
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source


# YAXArrays.Datasets.collectfromhandleMethod.

Extracts a YAXArray from a dataset handle that was just created from a arrayinfo

source


# YAXArrays.Datasets.createdatasetMethod.

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

source


# YAXArrays.Datasets.getarrayinfoMethod.

Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair

source


# YAXArrays.Datasets.testrangeMethod.

Test if data in x can be approximated by a step range

source


`,100),o=[r];function l(d,n,p,c,h,u){return s(),a("div",null,o)}const A=e(t,[["render",l]]);export{y as __pageData,A as default}; diff --git a/dev/assets/api.md.DwO_Lp_-.lean.js b/dev/assets/api.md.DwO_Lp_-.lean.js new file mode 100644 index 00000000..3de10823 --- /dev/null +++ b/dev/assets/api.md.DwO_Lp_-.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as s,a3 as i}from"./chunks/framework.D-wbpLqx.js";const y=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),t={name:"api.md"},r=i("",100),o=[r];function l(d,n,p,c,h,u){return s(),a("div",null,o)}const A=e(t,[["render",l]]);export{y as __pageData,A as default}; diff --git a/dev/assets/app.CXj-5Asm.js b/dev/assets/app.CfRkFKoj.js similarity index 90% rename from dev/assets/app.CXj-5Asm.js rename to dev/assets/app.CfRkFKoj.js index 0fe6ccbc..9fc61578 100644 --- a/dev/assets/app.CXj-5Asm.js +++ b/dev/assets/app.CfRkFKoj.js @@ -1 +1 @@ -import{U as o,a7 as p,a8 as u,a9 as l,aa as c,ab as f,ac as d,ad as m,ae as h,af as g,ag as A,d as P,u as v,y,x as w,ah as C,ai as R,aj as b,a6 as E}from"./chunks/framework.BjKsQEKQ.js";import{R as S}from"./chunks/theme.C0huFlU1.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp}; +import{U as o,a7 as p,a8 as u,a9 as l,aa as c,ab as f,ac as d,ad as m,ae as h,af as g,ag as A,d as P,u as v,y,x as w,ah as C,ai as R,aj as b,a6 as E}from"./chunks/framework.D-wbpLqx.js";import{R as S}from"./chunks/theme.BRL7lqyv.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp}; diff --git a/dev/assets/bdgyuwt.D3k-Jq19.png b/dev/assets/bdgyuwt.D3k-Jq19.png deleted file mode 100644 index f0b309a20bcbc611444ab136b26b91fdde67187c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131405 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 in o?Ct(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>(It(o,typeof e!="symbol"?e+"":e,t),t);import{X as Dt,s as oe,v as $e,ak as kt,al as Ot,d as Rt,G as xe,am as tt,h as Fe,an as _t,ao as Mt,x as Lt,ap as zt,y as Re,R as de,Q as Ee,aq as Pt,ar as Bt,Y as Vt,U as $t,as as Wt,o as ee,b as Kt,j as k,a1 as Jt,k as j,at as Ut,au as jt,av as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,aw as Qt,p as qt,l as Ht,ax as it,ay as Yt,aa as Zt,ag as Xt,az as er,_ as tr}from"./framework.BjKsQEKQ.js";import{u as rr,d as ar}from"./theme.C0huFlU1.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.dTbIYunh.js"),[])};/*! +var Ct=Object.defineProperty;var It=(o,e,t)=>e in o?Ct(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>It(o,typeof e!="symbol"?e+"":e,t);import{X as Dt,s as oe,v as $e,ak as kt,al as Ot,d as Rt,G as xe,am as tt,h as Fe,an as _t,ao as Mt,x as Lt,ap as zt,y as Re,R as de,Q as Ee,aq as Pt,ar as Bt,Y as Vt,U as $t,as as Wt,o as ee,b as Kt,j as k,a1 as Jt,k as j,at as Ut,au as jt,av as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,aw as Qt,p as qt,l as Ht,ax as it,ay as Yt,aa as Zt,ag as Xt,az as er,_ as tr}from"./framework.D-wbpLqx.js";import{u as rr,d as ar}from"./theme.BRL7lqyv.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.Cm1xQonj.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var yt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=yt.join(","),mt=typeof Element>"u",ue=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ce=!mt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ie=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},ir=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},gt=function(e,t,r){if(Ie(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ue.call(e,Ne)&&n.unshift(e),n=n.filter(r),n},bt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ie(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=ue.call(i,Ne);h&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ie(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var y=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else a.unshift.apply(a,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},se=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||ir(e))&&!wt(e)?0:e.tabIndex},or=function(e,t){var r=se(e);return r<0&&t&&!wt(e)?0:r},sr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ur=function(e){return xt(e)&&e.type==="hidden"},lr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},cr=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(ue.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Ce(e);if(u&&!u.shadowRoot&&n(u)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(vr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return ot(e);return!1},yr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},gr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=or(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(sr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},br=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:mr}):r=gt(e,t.includeContainer,We.bind(null,t)),gr(r)},wr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:De.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=gt(e,t.includeContainer,De.bind(null,t)),r},le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,Ne)===!1?!1:We(t,e)},xr=yt.concat("iframe").join(","),_e=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,xr)===!1?!1:De(t,e)};/*! diff --git a/dev/assets/chunks/framework.BjKsQEKQ.js b/dev/assets/chunks/framework.BjKsQEKQ.js deleted file mode 100644 index 659ad692..00000000 --- a/dev/assets/chunks/framework.BjKsQEKQ.js +++ /dev/null @@ -1,17 +0,0 @@ -/** -* @vue/shared v3.4.27 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function wr(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const ee={},mt=[],xe=()=>{},Ti=()=>!1,kt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Er=e=>e.startsWith("onUpdate:"),ie=Object.assign,Cr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ai=Object.prototype.hasOwnProperty,z=(e,t)=>Ai.call(e,t),k=Array.isArray,yt=e=>xn(e)==="[object Map]",Xs=e=>xn(e)==="[object Set]",K=e=>typeof e=="function",se=e=>typeof e=="string",ft=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Ys=e=>(Z(e)||K(e))&&K(e.then)&&K(e.catch),zs=Object.prototype.toString,xn=e=>zs.call(e),Ri=e=>xn(e).slice(8,-1),Js=e=>xn(e)==="[object Object]",xr=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=wr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Sn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Oi=/-(\w)/g,$e=Sn(e=>e.replace(Oi,(t,n)=>n?n.toUpperCase():"")),Li=/\B([A-Z])/g,dt=Sn(e=>e.replace(Li,"-$1").toLowerCase()),Tn=Sn(e=>e.charAt(0).toUpperCase()+e.slice(1)),un=Sn(e=>e?`on${Tn(e)}`:""),Je=(e,t)=>!Object.is(e,t),fn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},lr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ii=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let Qr;const Zs=()=>Qr||(Qr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Sr(e){if(k(e)){const t={};for(let n=0;n{if(n){const r=n.split(Pi);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Tr(e){let t="";if(se(e))t=e;else if(k(e))for(let n=0;nse(e)?e:e==null?"":k(e)||Z(e)&&(e.toString===zs||!K(e.toString))?JSON.stringify(e,to,2):String(e),to=(e,t)=>t&&t.__v_isRef?to(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Bn(r,o)+" =>"]=s,n),{})}:Xs(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Bn(n))}:ft(t)?Bn(t):Z(t)&&!k(t)&&!Js(t)?String(t):t,Bn=(e,t="")=>{var n;return ft(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.4.27 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let we;class ji{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),et()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Ye,n=ct;try{return Ye=!0,ct=this,this._runnings++,Zr(this),this.fn()}finally{es(this),this._runnings--,ct=n,Ye=t}}stop(){this.active&&(Zr(this),es(this),this.onStop&&this.onStop(),this.active=!1)}}function Ui(e){return e.value}function Zr(e){e._trackId++,e._depsLength=0}function es(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},mn=new WeakMap,at=Symbol(""),ur=Symbol("");function ve(e,t,n){if(Ye&&ct){let r=mn.get(e);r||mn.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=lo(()=>r.delete(n))),oo(ct,s)}}function Ve(e,t,n,r,s,o){const i=mn.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&k(e)){const c=Number(r);i.forEach((a,f)=>{(f==="length"||!ft(f)&&f>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":k(e)?xr(n)&&l.push(i.get("length")):(l.push(i.get(at)),yt(e)&&l.push(i.get(ur)));break;case"delete":k(e)||(l.push(i.get(at)),yt(e)&&l.push(i.get(ur)));break;case"set":yt(e)&&l.push(i.get(at));break}Rr();for(const c of l)c&&io(c,4);Or()}function Bi(e,t){const n=mn.get(e);return n&&n.get(t)}const ki=wr("__proto__,__v_isRef,__isVue"),co=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ft)),ts=Ki();function Ki(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){Ze(),Rr();const r=J(this)[t].apply(this,n);return Or(),et(),r}}),e}function Wi(e){ft(e)||(e=String(e));const t=J(this);return ve(t,"has",e),t.hasOwnProperty(e)}class ao{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?sl:po:o?ho:fo).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=k(t);if(!s){if(i&&z(ts,n))return Reflect.get(ts,n,r);if(n==="hasOwnProperty")return Wi}const l=Reflect.get(t,n,r);return(ft(n)?co.has(n):ki(n))||(s||ve(t,"get",n),o)?l:de(l)?i&&xr(n)?l:l.value:Z(l)?s?On(l):Rn(l):l}}class uo extends ao{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const c=$t(o);if(!yn(r)&&!$t(r)&&(o=J(o),r=J(r)),!k(t)&&de(o)&&!de(r))return c?!1:(o.value=r,!0)}const i=k(t)&&xr(n)?Number(n)e,An=e=>Reflect.getPrototypeOf(e);function zt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),o=J(t);n||(Je(t,o)&&ve(s,"get",t),ve(s,"get",o));const{has:i}=An(s),l=r?Lr:n?Pr:Ht;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Jt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(Je(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Qt(e,t=!1){return e=e.__v_raw,!t&&ve(J(e),"iterate",at),Reflect.get(e,"size",e)}function ns(e){e=J(e);const t=J(this);return An(t).has.call(t,e)||(t.add(e),Ve(t,"add",e,e)),this}function rs(e,t){t=J(t);const n=J(this),{has:r,get:s}=An(n);let o=r.call(n,e);o||(e=J(e),o=r.call(n,e));const i=s.call(n,e);return n.set(e,t),o?Je(t,i)&&Ve(n,"set",e,t):Ve(n,"add",e,t),this}function ss(e){const t=J(this),{has:n,get:r}=An(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&Ve(t,"delete",e,void 0),o}function os(){const e=J(this),t=e.size!==0,n=e.clear();return t&&Ve(e,"clear",void 0,void 0),n}function Zt(e,t){return function(r,s){const o=this,i=o.__v_raw,l=J(i),c=t?Lr:e?Pr:Ht;return!e&&ve(l,"iterate",at),i.forEach((a,f)=>r.call(s,c(a),c(f),o))}}function en(e,t,n){return function(...r){const s=this.__v_raw,o=J(s),i=yt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,a=s[e](...r),f=n?Lr:t?Pr:Ht;return!t&&ve(o,"iterate",c?ur:at),{next(){const{value:h,done:m}=a.next();return m?{value:h,done:m}:{value:l?[f(h[0]),f(h[1])]:f(h),done:m}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function zi(){const e={get(o){return zt(this,o)},get size(){return Qt(this)},has:Jt,add:ns,set:rs,delete:ss,clear:os,forEach:Zt(!1,!1)},t={get(o){return zt(this,o,!1,!0)},get size(){return Qt(this)},has:Jt,add:ns,set:rs,delete:ss,clear:os,forEach:Zt(!1,!0)},n={get(o){return zt(this,o,!0)},get size(){return Qt(this,!0)},has(o){return Jt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Zt(!0,!1)},r={get(o){return zt(this,o,!0,!0)},get size(){return Qt(this,!0)},has(o){return Jt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Zt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=en(o,!1,!1),n[o]=en(o,!0,!1),t[o]=en(o,!1,!0),r[o]=en(o,!0,!0)}),[e,n,t,r]}const[Ji,Qi,Zi,el]=zi();function Ir(e,t){const n=t?e?el:Zi:e?Qi:Ji;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(z(n,s)&&s in r?n:r,s,o)}const tl={get:Ir(!1,!1)},nl={get:Ir(!1,!0)},rl={get:Ir(!0,!1)};const fo=new WeakMap,ho=new WeakMap,po=new WeakMap,sl=new WeakMap;function ol(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function il(e){return e.__v_skip||!Object.isExtensible(e)?0:ol(Ri(e))}function Rn(e){return $t(e)?e:Mr(e,!1,Gi,tl,fo)}function ll(e){return Mr(e,!1,Yi,nl,ho)}function On(e){return Mr(e,!0,Xi,rl,po)}function Mr(e,t,n,r,s){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=il(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function Rt(e){return $t(e)?Rt(e.__v_raw):!!(e&&e.__v_isReactive)}function $t(e){return!!(e&&e.__v_isReadonly)}function yn(e){return!!(e&&e.__v_isShallow)}function go(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function dn(e){return Object.isExtensible(e)&&Qs(e,"__v_skip",!0),e}const Ht=e=>Z(e)?Rn(e):e,Pr=e=>Z(e)?On(e):e;class mo{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ar(()=>t(this._value),()=>Ot(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&Je(t._value,t._value=t.effect.run())&&Ot(t,4),Nr(t),t.effect._dirtyLevel>=2&&Ot(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function cl(e,t,n=!1){let r,s;const o=K(e);return o?(r=e,s=xe):(r=e.get,s=e.set),new mo(r,s,o||!s,n)}function Nr(e){var t;Ye&&ct&&(e=J(e),oo(ct,(t=e.dep)!=null?t:e.dep=lo(()=>e.dep=void 0,e instanceof mo?e:void 0)))}function Ot(e,t=4,n){e=J(e);const r=e.dep;r&&io(r,t)}function de(e){return!!(e&&e.__v_isRef===!0)}function re(e){return yo(e,!1)}function Fr(e){return yo(e,!0)}function yo(e,t){return de(e)?e:new al(e,t)}class al{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Ht(t)}get value(){return Nr(this),this._value}set value(t){const n=this.__v_isShallow||yn(t)||$t(t);t=n?t:J(t),Je(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Ht(t),Ot(this,4))}}function _o(e){return de(e)?e.value:e}const ul={get:(e,t,n)=>_o(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function vo(e){return Rt(e)?e:new Proxy(e,ul)}class fl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Nr(this),()=>Ot(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function dl(e){return new fl(e)}class hl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Bi(J(this._object),this._key)}}class pl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function gl(e,t,n){return de(e)?e:K(e)?new pl(e):Z(e)&&arguments.length>1?ml(e,t,n):re(e)}function ml(e,t,n){const r=e[t];return de(r)?r:new hl(e,t,n)}/** -* @vue/runtime-core v3.4.27 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function ze(e,t,n,r){try{return r?e(...r):e()}catch(s){Kt(s,t,n)}}function Se(e,t,n,r){if(K(e)){const s=ze(e,t,n,r);return s&&Ys(s)&&s.catch(o=>{Kt(o,t,n)}),s}if(k(e)){const s=[];for(let o=0;o>>1,s=pe[r],o=Vt(s);oPe&&pe.splice(t,1)}function bl(e){k(e)?vt.push(...e):(!We||!We.includes(e,e.allowRecurse?ot+1:ot))&&vt.push(e),wo()}function is(e,t,n=jt?Pe+1:0){for(;nVt(n)-Vt(r));if(vt.length=0,We){We.push(...t);return}for(We=t,ot=0;ote.id==null?1/0:e.id,wl=(e,t)=>{const n=Vt(e)-Vt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Eo(e){fr=!1,jt=!0,pe.sort(wl);try{for(Pe=0;Pese(v)?v.trim():v)),h&&(s=n.map(lr))}let l,c=r[l=un(t)]||r[l=un($e(t))];!c&&o&&(c=r[l=un(dt(t))]),c&&Se(c,e,6,s);const a=r[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(a,e,6,s)}}function Co(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!K(e)){const c=a=>{const f=Co(a,t,!0);f&&(l=!0,ie(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Z(e)&&r.set(e,null),null):(k(o)?o.forEach(c=>i[c]=null):ie(i,o),Z(e)&&r.set(e,i),i)}function Mn(e,t){return!e||!kt(t)?!1:(t=t.slice(2).replace(/Once$/,""),z(e,t[0].toLowerCase()+t.slice(1))||z(e,dt(t))||z(e,t))}let ce=null,Pn=null;function vn(e){const t=ce;return ce=e,Pn=e&&e.type.__scopeId||null,t}function eu(e){Pn=e}function tu(){Pn=null}function Cl(e,t=ce,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&bs(-1);const o=vn(t);let i;try{i=e(...s)}finally{vn(o),r._d&&bs(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function kn(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:a,renderCache:f,props:h,data:m,setupState:v,ctx:C,inheritAttrs:I}=e,$=vn(e);let q,D;try{if(n.shapeFlag&4){const y=s||r,M=y;q=Ae(a.call(M,y,f,h,v,m,C)),D=l}else{const y=t;q=Ae(y.length>1?y(h,{attrs:l,slots:i,emit:c}):y(h,null)),D=t.props?l:xl(l)}}catch(y){Nt.length=0,Kt(y,e,1),q=oe(_e)}let p=q;if(D&&I!==!1){const y=Object.keys(D),{shapeFlag:M}=p;y.length&&M&7&&(o&&y.some(Er)&&(D=Sl(D,o)),p=Qe(p,D,!1,!0))}return n.dirs&&(p=Qe(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),q=p,vn($),q}const xl=e=>{let t;for(const n in e)(n==="class"||n==="style"||kt(n))&&((t||(t={}))[n]=e[n]);return t},Sl=(e,t)=>{const n={};for(const r in e)(!Er(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Tl(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,a=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?ls(r,i,a):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function To(e,t){t&&t.pendingBranch?k(e)?t.effects.push(...e):t.effects.push(e):bl(e)}const Ol=Symbol.for("v-scx"),Ll=()=>wt(Ol);function jr(e,t){return Nn(e,null,t)}function su(e,t){return Nn(e,null,{flush:"post"})}const tn={};function Ne(e,t,n){return Nn(e,t,n)}function Nn(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:l}=ee){if(t&&o){const O=t;t=(...N)=>{O(...N),M()}}const c=ue,a=O=>r===!0?O:lt(O,r===!1?1:void 0);let f,h=!1,m=!1;if(de(e)?(f=()=>e.value,h=yn(e)):Rt(e)?(f=()=>a(e),h=!0):k(e)?(m=!0,h=e.some(O=>Rt(O)||yn(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(Rt(O))return a(O);if(K(O))return ze(O,c,2)})):K(e)?t?f=()=>ze(e,c,2):f=()=>(v&&v(),Se(e,c,3,[C])):f=xe,t&&r){const O=f;f=()=>lt(O())}let v,C=O=>{v=p.onStop=()=>{ze(O,c,4),v=p.onStop=void 0}},I;if(Gt)if(C=xe,t?n&&Se(t,c,3,[f(),m?[]:void 0,C]):f(),s==="sync"){const O=Ll();I=O.__watcherHandles||(O.__watcherHandles=[])}else return xe;let $=m?new Array(e.length).fill(tn):tn;const q=()=>{if(!(!p.active||!p.dirty))if(t){const O=p.run();(r||h||(m?O.some((N,T)=>Je(N,$[T])):Je(O,$)))&&(v&&v(),Se(t,c,3,[O,$===tn?void 0:m&&$[0]===tn?[]:$,C]),$=O)}else p.run()};q.allowRecurse=!!t;let D;s==="sync"?D=q:s==="post"?D=()=>me(q,c&&c.suspense):(q.pre=!0,c&&(q.id=c.uid),D=()=>In(q));const p=new Ar(f,xe,D),y=no(),M=()=>{p.stop(),y&&Cr(y.effects,p)};return t?n?q():$=p.run():s==="post"?me(p.run.bind(p),c&&c.suspense):p.run(),I&&I.push(M),M}function Il(e,t,n){const r=this.proxy,s=se(e)?e.includes(".")?Ao(r,e):()=>r[e]:e.bind(r,r);let o;K(t)?o=t:(o=t.handler,n=t);const i=qt(this),l=Nn(s,o.bind(r),n);return i(),l}function Ao(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{lt(r,t,n)});else if(Js(e))for(const r in e)lt(e[r],t,n);return e}function ou(e,t){if(ce===null)return e;const n=jn(ce)||ce.proxy,r=e.dirs||(e.dirs=[]);for(let s=0;s{e.isMounted=!0}),Mo(()=>{e.isUnmounting=!0}),e}const Ee=[Function,Array],Ro={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ee,onEnter:Ee,onAfterEnter:Ee,onEnterCancelled:Ee,onBeforeLeave:Ee,onLeave:Ee,onAfterLeave:Ee,onLeaveCancelled:Ee,onBeforeAppear:Ee,onAppear:Ee,onAfterAppear:Ee,onAppearCancelled:Ee},Pl={name:"BaseTransition",props:Ro,setup(e,{slots:t}){const n=Hn(),r=Ml();return()=>{const s=t.default&&Lo(t.default(),!0);if(!s||!s.length)return;let o=s[0];if(s.length>1){for(const m of s)if(m.type!==_e){o=m;break}}const i=J(e),{mode:l}=i;if(r.isLeaving)return Kn(o);const c=as(o);if(!c)return Kn(o);const a=dr(c,i,r,n);hr(c,a);const f=n.subTree,h=f&&as(f);if(h&&h.type!==_e&&!it(c,h)){const m=dr(h,i,r,n);if(hr(h,m),l==="out-in"&&c.type!==_e)return r.isLeaving=!0,m.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Kn(o);l==="in-out"&&c.type!==_e&&(m.delayLeave=(v,C,I)=>{const $=Oo(r,h);$[String(h.key)]=h,v[qe]=()=>{C(),v[qe]=void 0,delete a.delayedLeave},a.delayedLeave=I})}return o}}},Nl=Pl;function Oo(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function dr(e,t,n,r){const{appear:s,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:v,onLeaveCancelled:C,onBeforeAppear:I,onAppear:$,onAfterAppear:q,onAppearCancelled:D}=t,p=String(e.key),y=Oo(n,e),M=(T,F)=>{T&&Se(T,r,9,F)},O=(T,F)=>{const w=F[1];M(T,F),k(T)?T.every(j=>j.length<=1)&&w():T.length<=1&&w()},N={mode:o,persisted:i,beforeEnter(T){let F=l;if(!n.isMounted)if(s)F=I||l;else return;T[qe]&&T[qe](!0);const w=y[p];w&&it(e,w)&&w.el[qe]&&w.el[qe](),M(F,[T])},enter(T){let F=c,w=a,j=f;if(!n.isMounted)if(s)F=$||c,w=q||a,j=D||f;else return;let A=!1;const G=T[nn]=le=>{A||(A=!0,le?M(j,[T]):M(w,[T]),N.delayedLeave&&N.delayedLeave(),T[nn]=void 0)};F?O(F,[T,G]):G()},leave(T,F){const w=String(e.key);if(T[nn]&&T[nn](!0),n.isUnmounting)return F();M(h,[T]);let j=!1;const A=T[qe]=G=>{j||(j=!0,F(),G?M(C,[T]):M(v,[T]),T[qe]=void 0,y[w]===e&&delete y[w])};y[w]=e,m?O(m,[T,A]):A()},clone(T){return dr(T,t,n,r)}};return N}function Kn(e){if(Wt(e))return e=Qe(e),e.children=null,e}function as(e){if(!Wt(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&K(n.default))return n.default()}}function hr(e,t){e.shapeFlag&6&&e.component?hr(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Lo(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;o!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function iu(e){K(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,a,f=0;const h=()=>(f++,c=null,m()),m=()=>{let v;return c||(v=c=t().catch(C=>{if(C=C instanceof Error?C:new Error(String(C)),l)return new Promise((I,$)=>{l(C,()=>I(h()),()=>$(C),f+1)});throw C}).then(C=>v!==c&&c?c:(C&&(C.__esModule||C[Symbol.toStringTag]==="Module")&&(C=C.default),a=C,C)))};return Vr({name:"AsyncComponentWrapper",__asyncLoader:m,get __asyncResolved(){return a},setup(){const v=ue;if(a)return()=>Wn(a,v);const C=D=>{c=null,Kt(D,v,13,!r)};if(i&&v.suspense||Gt)return m().then(D=>()=>Wn(D,v)).catch(D=>(C(D),()=>r?oe(r,{error:D}):null));const I=re(!1),$=re(),q=re(!!s);return s&&setTimeout(()=>{q.value=!1},s),o!=null&&setTimeout(()=>{if(!I.value&&!$.value){const D=new Error(`Async component timed out after ${o}ms.`);C(D),$.value=D}},o),m().then(()=>{I.value=!0,v.parent&&Wt(v.parent.vnode)&&(v.parent.effect.dirty=!0,In(v.parent.update))}).catch(D=>{C(D),$.value=D}),()=>{if(I.value&&a)return Wn(a,v);if($.value&&r)return oe(r,{error:$.value});if(n&&!q.value)return oe(n)}}})}function Wn(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=oe(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const Wt=e=>e.type.__isKeepAlive;function Fl(e,t){Io(e,"a",t)}function $l(e,t){Io(e,"da",t)}function Io(e,t,n=ue){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Fn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Wt(s.parent.vnode)&&Hl(r,t,n,s),s=s.parent}}function Hl(e,t,n,r){const s=Fn(t,e,r,!0);$n(()=>{Cr(r[t],s)},n)}function Fn(e,t,n=ue,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;Ze();const l=qt(n),c=Se(t,n,e,i);return l(),et(),c});return r?s.unshift(o):s.push(o),o}}const De=e=>(t,n=ue)=>(!Gt||e==="sp")&&Fn(e,(...r)=>t(...r),n),jl=De("bm"),xt=De("m"),Vl=De("bu"),Dl=De("u"),Mo=De("bum"),$n=De("um"),Ul=De("sp"),Bl=De("rtg"),kl=De("rtc");function Kl(e,t=ue){Fn("ec",e,t)}function lu(e,t,n,r){let s;const o=n;if(k(e)||se(e)){s=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;lEn(t)?!(t.type===_e||t.type===ye&&!Po(t.children)):!0)?e:null}function au(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:un(r)]=e[r];return n}const pr=e=>e?ei(e)?jn(e)||e.proxy:pr(e.parent):null,Lt=ie(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>pr(e.parent),$root:e=>pr(e.root),$emit:e=>e.emit,$options:e=>Dr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,In(e.update)}),$nextTick:e=>e.n||(e.n=Ln.bind(e.proxy)),$watch:e=>Il.bind(e)}),qn=(e,t)=>e!==ee&&!e.__isScriptSetup&&z(e,t),Wl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const v=i[t];if(v!==void 0)switch(v){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(qn(r,t))return i[t]=1,r[t];if(s!==ee&&z(s,t))return i[t]=2,s[t];if((a=e.propsOptions[0])&&z(a,t))return i[t]=3,o[t];if(n!==ee&&z(n,t))return i[t]=4,n[t];gr&&(i[t]=0)}}const f=Lt[t];let h,m;if(f)return t==="$attrs"&&ve(e.attrs,"get",""),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ee&&z(n,t))return i[t]=4,n[t];if(m=c.config.globalProperties,z(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return qn(s,t)?(s[t]=n,!0):r!==ee&&z(r,t)?(r[t]=n,!0):z(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==ee&&z(e,i)||qn(t,i)||(l=o[0])&&z(l,i)||z(r,i)||z(Lt,i)||z(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function uu(){return ql().slots}function ql(){const e=Hn();return e.setupContext||(e.setupContext=ni(e))}function us(e){return k(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let gr=!0;function Gl(e){const t=Dr(e),n=e.proxy,r=e.ctx;gr=!1,t.beforeCreate&&fs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:a,created:f,beforeMount:h,mounted:m,beforeUpdate:v,updated:C,activated:I,deactivated:$,beforeDestroy:q,beforeUnmount:D,destroyed:p,unmounted:y,render:M,renderTracked:O,renderTriggered:N,errorCaptured:T,serverPrefetch:F,expose:w,inheritAttrs:j,components:A,directives:G,filters:le}=t;if(a&&Xl(a,r,null),i)for(const Y in i){const V=i[Y];K(V)&&(r[Y]=V.bind(n))}if(s){const Y=s.call(n,n);Z(Y)&&(e.data=Rn(Y))}if(gr=!0,o)for(const Y in o){const V=o[Y],He=K(V)?V.bind(n,n):K(V.get)?V.get.bind(n,n):xe,Xt=!K(V)&&K(V.set)?V.set.bind(n):xe,tt=ne({get:He,set:Xt});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>tt.value,set:Le=>tt.value=Le})}if(l)for(const Y in l)No(l[Y],r,n,Y);if(c){const Y=K(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(V=>{ec(V,Y[V])})}f&&fs(f,e,"c");function U(Y,V){k(V)?V.forEach(He=>Y(He.bind(n))):V&&Y(V.bind(n))}if(U(jl,h),U(xt,m),U(Vl,v),U(Dl,C),U(Fl,I),U($l,$),U(Kl,T),U(kl,O),U(Bl,N),U(Mo,D),U($n,y),U(Ul,F),k(w))if(w.length){const Y=e.exposed||(e.exposed={});w.forEach(V=>{Object.defineProperty(Y,V,{get:()=>n[V],set:He=>n[V]=He})})}else e.exposed||(e.exposed={});M&&e.render===xe&&(e.render=M),j!=null&&(e.inheritAttrs=j),A&&(e.components=A),G&&(e.directives=G)}function Xl(e,t,n=xe){k(e)&&(e=mr(e));for(const r in e){const s=e[r];let o;Z(s)?"default"in s?o=wt(s.from||r,s.default,!0):o=wt(s.from||r):o=wt(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function fs(e,t,n){Se(k(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function No(e,t,n,r){const s=r.includes(".")?Ao(n,r):()=>n[r];if(se(e)){const o=t[e];K(o)&&Ne(s,o)}else if(K(e))Ne(s,e.bind(n));else if(Z(e))if(k(e))e.forEach(o=>No(o,t,n,r));else{const o=K(e.handler)?e.handler.bind(n):t[e.handler];K(o)&&Ne(s,o,e)}}function Dr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(a=>bn(c,a,i,!0)),bn(c,t,i)),Z(t)&&o.set(t,c),c}function bn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&bn(e,o,n,!0),s&&s.forEach(i=>bn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Yl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Yl={data:ds,props:hs,emits:hs,methods:At,computed:At,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:At,directives:At,watch:Jl,provide:ds,inject:zl};function ds(e,t){return t?e?function(){return ie(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function zl(e,t){return At(mr(e),mr(t))}function mr(e){if(k(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}const $o={},Ho=()=>Object.create($o),jo=e=>Object.getPrototypeOf(e)===$o;function tc(e,t,n,r=!1){const s={},o=Ho();e.propsDefaults=Object.create(null),Vo(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:ll(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function nc(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=J(s),[c]=e.propsOptions;let a=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,v]=Do(h,t,!0);ie(i,m),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return Z(e)&&r.set(e,mt),mt;if(k(o))for(let f=0;f-1,v[1]=I<0||C-1||z(v,"default"))&&l.push(h)}}}const a=[i,l];return Z(e)&&r.set(e,a),a}function ps(e){return e[0]!=="$"&&!_t(e)}function gs(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function ms(e,t){return gs(e)===gs(t)}function ys(e,t){return k(t)?t.findIndex(n=>ms(n,e)):K(t)&&ms(t,e)?0:-1}const Uo=e=>e[0]==="_"||e==="$stable",Ur=e=>k(e)?e.map(Ae):[Ae(e)],rc=(e,t,n)=>{if(t._n)return t;const r=Cl((...s)=>Ur(t(...s)),n);return r._c=!1,r},Bo=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Uo(s))continue;const o=e[s];if(K(o))t[s]=rc(s,o,r);else if(o!=null){const i=Ur(o);t[s]=()=>i}}},ko=(e,t)=>{const n=Ur(t);e.slots.default=()=>n},sc=(e,t)=>{const n=e.slots=Ho();if(e.vnode.shapeFlag&32){const r=t._;r?(ie(n,t),Qs(n,"_",r,!0)):Bo(t,n)}else t&&ko(e,t)},oc=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ee;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(ie(s,t),!n&&l===1&&delete s._):(o=!t.$stable,Bo(t,s)),i=t}else t&&(ko(e,t),i={default:1});if(o)for(const l in s)!Uo(l)&&i[l]==null&&delete s[l]};function wn(e,t,n,r,s=!1){if(k(e)){e.forEach((m,v)=>wn(m,t&&(k(t)?t[v]:t),n,r,s));return}if(bt(r)&&!s)return;const o=r.shapeFlag&4?jn(r.component)||r.component.proxy:r.el,i=s?null:o,{i:l,r:c}=e,a=t&&t.r,f=l.refs===ee?l.refs={}:l.refs,h=l.setupState;if(a!=null&&a!==c&&(se(a)?(f[a]=null,z(h,a)&&(h[a]=null)):de(a)&&(a.value=null)),K(c))ze(c,l,12,[i,f]);else{const m=se(c),v=de(c);if(m||v){const C=()=>{if(e.f){const I=m?z(h,c)?h[c]:f[c]:c.value;s?k(I)&&Cr(I,o):k(I)?I.includes(o)||I.push(o):m?(f[c]=[o],z(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else m?(f[c]=i,z(h,c)&&(h[c]=i)):v&&(c.value=i,e.k&&(f[e.k]=i))};i?(C.id=-1,me(C,n)):C()}}}let Be=!1;const ic=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",lc=e=>e.namespaceURI.includes("MathML"),rn=e=>{if(ic(e))return"svg";if(lc(e))return"mathml"},sn=e=>e.nodeType===8;function cc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:a}}=e,f=(p,y)=>{if(!y.hasChildNodes()){n(null,p,y),_n(),y._vnode=p;return}Be=!1,h(y.firstChild,p,null,null,null),_n(),y._vnode=p,Be&&console.error("Hydration completed but contains mismatches.")},h=(p,y,M,O,N,T=!1)=>{T=T||!!y.dynamicChildren;const F=sn(p)&&p.data==="[",w=()=>I(p,y,M,O,N,F),{type:j,ref:A,shapeFlag:G,patchFlag:le}=y;let fe=p.nodeType;y.el=p,le===-2&&(T=!1,y.dynamicChildren=null);let U=null;switch(j){case Et:fe!==3?y.children===""?(c(y.el=s(""),i(p),p),U=p):U=w():(p.data!==y.children&&(Be=!0,p.data=y.children),U=o(p));break;case _e:D(p)?(U=o(p),q(y.el=p.content.firstChild,p,M)):fe!==8||F?U=w():U=o(p);break;case Pt:if(F&&(p=o(p),fe=p.nodeType),fe===1||fe===3){U=p;const Y=!y.children.length;for(let V=0;V{T=T||!!y.dynamicChildren;const{type:F,props:w,patchFlag:j,shapeFlag:A,dirs:G,transition:le}=y,fe=F==="input"||F==="option";if(fe||j!==-1){G&&Me(y,null,M,"created");let U=!1;if(D(p)){U=Wo(O,le)&&M&&M.vnode.props&&M.vnode.props.appear;const V=p.content.firstChild;U&&le.beforeEnter(V),q(V,p,M),y.el=p=V}if(A&16&&!(w&&(w.innerHTML||w.textContent))){let V=v(p.firstChild,y,p,M,O,N,T);for(;V;){Be=!0;const He=V;V=V.nextSibling,l(He)}}else A&8&&p.textContent!==y.children&&(Be=!0,p.textContent=y.children);if(w)if(fe||!T||j&48)for(const V in w)(fe&&(V.endsWith("value")||V==="indeterminate")||kt(V)&&!_t(V)||V[0]===".")&&r(p,V,null,w[V],void 0,void 0,M);else w.onClick&&r(p,"onClick",null,w.onClick,void 0,void 0,M);let Y;(Y=w&&w.onVnodeBeforeMount)&&Ce(Y,M,y),G&&Me(y,null,M,"beforeMount"),((Y=w&&w.onVnodeMounted)||G||U)&&To(()=>{Y&&Ce(Y,M,y),U&&le.enter(p),G&&Me(y,null,M,"mounted")},O)}return p.nextSibling},v=(p,y,M,O,N,T,F)=>{F=F||!!y.dynamicChildren;const w=y.children,j=w.length;for(let A=0;A{const{slotScopeIds:F}=y;F&&(N=N?N.concat(F):F);const w=i(p),j=v(o(p),y,w,M,O,N,T);return j&&sn(j)&&j.data==="]"?o(y.anchor=j):(Be=!0,c(y.anchor=a("]"),w,j),j)},I=(p,y,M,O,N,T)=>{if(Be=!0,y.el=null,T){const j=$(p);for(;;){const A=o(p);if(A&&A!==j)l(A);else break}}const F=o(p),w=i(p);return l(p),n(null,y,w,F,M,O,rn(w),N),F},$=(p,y="[",M="]")=>{let O=0;for(;p;)if(p=o(p),p&&sn(p)&&(p.data===y&&O++,p.data===M)){if(O===0)return o(p);O--}return p},q=(p,y,M)=>{const O=y.parentNode;O&&O.replaceChild(p,y);let N=M;for(;N;)N.vnode.el===y&&(N.vnode.el=N.subTree.el=p),N=N.parent},D=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[f,h]}const me=To;function ac(e){return Ko(e)}function uc(e){return Ko(e,cc)}function Ko(e,t){const n=Zs();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:a,setElementText:f,parentNode:h,nextSibling:m,setScopeId:v=xe,insertStaticContent:C}=e,I=(u,d,g,_=null,b=null,S=null,L=void 0,x=null,R=!!d.dynamicChildren)=>{if(u===d)return;u&&!it(u,d)&&(_=Yt(u),Le(u,b,S,!0),u=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:E,ref:P,shapeFlag:B}=d;switch(E){case Et:$(u,d,g,_);break;case _e:q(u,d,g,_);break;case Pt:u==null&&D(d,g,_,L);break;case ye:A(u,d,g,_,b,S,L,x,R);break;default:B&1?M(u,d,g,_,b,S,L,x,R):B&6?G(u,d,g,_,b,S,L,x,R):(B&64||B&128)&&E.process(u,d,g,_,b,S,L,x,R,ht)}P!=null&&b&&wn(P,u&&u.ref,S,d||u,!d)},$=(u,d,g,_)=>{if(u==null)r(d.el=l(d.children),g,_);else{const b=d.el=u.el;d.children!==u.children&&a(b,d.children)}},q=(u,d,g,_)=>{u==null?r(d.el=c(d.children||""),g,_):d.el=u.el},D=(u,d,g,_)=>{[u.el,u.anchor]=C(u.children,d,g,_,u.el,u.anchor)},p=({el:u,anchor:d},g,_)=>{let b;for(;u&&u!==d;)b=m(u),r(u,g,_),u=b;r(d,g,_)},y=({el:u,anchor:d})=>{let g;for(;u&&u!==d;)g=m(u),s(u),u=g;s(d)},M=(u,d,g,_,b,S,L,x,R)=>{d.type==="svg"?L="svg":d.type==="math"&&(L="mathml"),u==null?O(d,g,_,b,S,L,x,R):F(u,d,b,S,L,x,R)},O=(u,d,g,_,b,S,L,x)=>{let R,E;const{props:P,shapeFlag:B,transition:H,dirs:W}=u;if(R=u.el=i(u.type,S,P&&P.is,P),B&8?f(R,u.children):B&16&&T(u.children,R,null,_,b,Gn(u,S),L,x),W&&Me(u,null,_,"created"),N(R,u,u.scopeId,L,_),P){for(const Q in P)Q!=="value"&&!_t(Q)&&o(R,Q,null,P[Q],S,u.children,_,b,je);"value"in P&&o(R,"value",null,P.value,S),(E=P.onVnodeBeforeMount)&&Ce(E,_,u)}W&&Me(u,null,_,"beforeMount");const X=Wo(b,H);X&&H.beforeEnter(R),r(R,d,g),((E=P&&P.onVnodeMounted)||X||W)&&me(()=>{E&&Ce(E,_,u),X&&H.enter(R),W&&Me(u,null,_,"mounted")},b)},N=(u,d,g,_,b)=>{if(g&&v(u,g),_)for(let S=0;S<_.length;S++)v(u,_[S]);if(b){let S=b.subTree;if(d===S){const L=b.vnode;N(u,L,L.scopeId,L.slotScopeIds,b.parent)}}},T=(u,d,g,_,b,S,L,x,R=0)=>{for(let E=R;E{const x=d.el=u.el;let{patchFlag:R,dynamicChildren:E,dirs:P}=d;R|=u.patchFlag&16;const B=u.props||ee,H=d.props||ee;let W;if(g&&nt(g,!1),(W=H.onVnodeBeforeUpdate)&&Ce(W,g,d,u),P&&Me(d,u,g,"beforeUpdate"),g&&nt(g,!0),E?w(u.dynamicChildren,E,x,g,_,Gn(d,b),S):L||V(u,d,x,null,g,_,Gn(d,b),S,!1),R>0){if(R&16)j(x,d,B,H,g,_,b);else if(R&2&&B.class!==H.class&&o(x,"class",null,H.class,b),R&4&&o(x,"style",B.style,H.style,b),R&8){const X=d.dynamicProps;for(let Q=0;Q{W&&Ce(W,g,d,u),P&&Me(d,u,g,"updated")},_)},w=(u,d,g,_,b,S,L)=>{for(let x=0;x{if(g!==_){if(g!==ee)for(const x in g)!_t(x)&&!(x in _)&&o(u,x,g[x],null,L,d.children,b,S,je);for(const x in _){if(_t(x))continue;const R=_[x],E=g[x];R!==E&&x!=="value"&&o(u,x,E,R,L,d.children,b,S,je)}"value"in _&&o(u,"value",g.value,_.value,L)}},A=(u,d,g,_,b,S,L,x,R)=>{const E=d.el=u?u.el:l(""),P=d.anchor=u?u.anchor:l("");let{patchFlag:B,dynamicChildren:H,slotScopeIds:W}=d;W&&(x=x?x.concat(W):W),u==null?(r(E,g,_),r(P,g,_),T(d.children||[],g,P,b,S,L,x,R)):B>0&&B&64&&H&&u.dynamicChildren?(w(u.dynamicChildren,H,g,b,S,L,x),(d.key!=null||b&&d===b.subTree)&&Br(u,d,!0)):V(u,d,g,P,b,S,L,x,R)},G=(u,d,g,_,b,S,L,x,R)=>{d.slotScopeIds=x,u==null?d.shapeFlag&512?b.ctx.activate(d,g,_,L,R):le(d,g,_,b,S,L,R):fe(u,d,R)},le=(u,d,g,_,b,S,L)=>{const x=u.component=wc(u,_,b);if(Wt(u)&&(x.ctx.renderer=ht),Ec(x),x.asyncDep){if(b&&b.registerDep(x,U),!u.el){const R=x.subTree=oe(_e);q(null,R,d,g)}}else U(x,u,d,g,b,S,L)},fe=(u,d,g)=>{const _=d.component=u.component;if(Tl(u,d,g))if(_.asyncDep&&!_.asyncResolved){Y(_,d,g);return}else _.next=d,vl(_.update),_.effect.dirty=!0,_.update();else d.el=u.el,_.vnode=d},U=(u,d,g,_,b,S,L)=>{const x=()=>{if(u.isMounted){let{next:P,bu:B,u:H,parent:W,vnode:X}=u;{const pt=qo(u);if(pt){P&&(P.el=X.el,Y(u,P,L)),pt.asyncDep.then(()=>{u.isUnmounted||x()});return}}let Q=P,te;nt(u,!1),P?(P.el=X.el,Y(u,P,L)):P=X,B&&fn(B),(te=P.props&&P.props.onVnodeBeforeUpdate)&&Ce(te,W,P,X),nt(u,!0);const ae=kn(u),Te=u.subTree;u.subTree=ae,I(Te,ae,h(Te.el),Yt(Te),u,b,S),P.el=ae.el,Q===null&&Al(u,ae.el),H&&me(H,b),(te=P.props&&P.props.onVnodeUpdated)&&me(()=>Ce(te,W,P,X),b)}else{let P;const{el:B,props:H}=d,{bm:W,m:X,parent:Q}=u,te=bt(d);if(nt(u,!1),W&&fn(W),!te&&(P=H&&H.onVnodeBeforeMount)&&Ce(P,Q,d),nt(u,!0),B&&Un){const ae=()=>{u.subTree=kn(u),Un(B,u.subTree,u,b,null)};te?d.type.__asyncLoader().then(()=>!u.isUnmounted&&ae()):ae()}else{const ae=u.subTree=kn(u);I(null,ae,g,_,u,b,S),d.el=ae.el}if(X&&me(X,b),!te&&(P=H&&H.onVnodeMounted)){const ae=d;me(()=>Ce(P,Q,ae),b)}(d.shapeFlag&256||Q&&bt(Q.vnode)&&Q.vnode.shapeFlag&256)&&u.a&&me(u.a,b),u.isMounted=!0,d=g=_=null}},R=u.effect=new Ar(x,xe,()=>In(E),u.scope),E=u.update=()=>{R.dirty&&R.run()};E.id=u.uid,nt(u,!0),E()},Y=(u,d,g)=>{d.component=u;const _=u.vnode.props;u.vnode=d,u.next=null,nc(u,d.props,_,g),oc(u,d.children,g),Ze(),is(u),et()},V=(u,d,g,_,b,S,L,x,R=!1)=>{const E=u&&u.children,P=u?u.shapeFlag:0,B=d.children,{patchFlag:H,shapeFlag:W}=d;if(H>0){if(H&128){Xt(E,B,g,_,b,S,L,x,R);return}else if(H&256){He(E,B,g,_,b,S,L,x,R);return}}W&8?(P&16&&je(E,b,S),B!==E&&f(g,B)):P&16?W&16?Xt(E,B,g,_,b,S,L,x,R):je(E,b,S,!0):(P&8&&f(g,""),W&16&&T(B,g,_,b,S,L,x,R))},He=(u,d,g,_,b,S,L,x,R)=>{u=u||mt,d=d||mt;const E=u.length,P=d.length,B=Math.min(E,P);let H;for(H=0;HP?je(u,b,S,!0,!1,B):T(d,g,_,b,S,L,x,R,B)},Xt=(u,d,g,_,b,S,L,x,R)=>{let E=0;const P=d.length;let B=u.length-1,H=P-1;for(;E<=B&&E<=H;){const W=u[E],X=d[E]=R?Ge(d[E]):Ae(d[E]);if(it(W,X))I(W,X,g,null,b,S,L,x,R);else break;E++}for(;E<=B&&E<=H;){const W=u[B],X=d[H]=R?Ge(d[H]):Ae(d[H]);if(it(W,X))I(W,X,g,null,b,S,L,x,R);else break;B--,H--}if(E>B){if(E<=H){const W=H+1,X=WH)for(;E<=B;)Le(u[E],b,S,!0),E++;else{const W=E,X=E,Q=new Map;for(E=X;E<=H;E++){const be=d[E]=R?Ge(d[E]):Ae(d[E]);be.key!=null&&Q.set(be.key,E)}let te,ae=0;const Te=H-X+1;let pt=!1,Yr=0;const St=new Array(Te);for(E=0;E=Te){Le(be,b,S,!0);continue}let Ie;if(be.key!=null)Ie=Q.get(be.key);else for(te=X;te<=H;te++)if(St[te-X]===0&&it(be,d[te])){Ie=te;break}Ie===void 0?Le(be,b,S,!0):(St[Ie-X]=E+1,Ie>=Yr?Yr=Ie:pt=!0,I(be,d[Ie],g,null,b,S,L,x,R),ae++)}const zr=pt?fc(St):mt;for(te=zr.length-1,E=Te-1;E>=0;E--){const be=X+E,Ie=d[be],Jr=be+1{const{el:S,type:L,transition:x,children:R,shapeFlag:E}=u;if(E&6){tt(u.component.subTree,d,g,_);return}if(E&128){u.suspense.move(d,g,_);return}if(E&64){L.move(u,d,g,ht);return}if(L===ye){r(S,d,g);for(let B=0;Bx.enter(S),b);else{const{leave:B,delayLeave:H,afterLeave:W}=x,X=()=>r(S,d,g),Q=()=>{B(S,()=>{X(),W&&W()})};H?H(S,X,Q):Q()}else r(S,d,g)},Le=(u,d,g,_=!1,b=!1)=>{const{type:S,props:L,ref:x,children:R,dynamicChildren:E,shapeFlag:P,patchFlag:B,dirs:H}=u;if(x!=null&&wn(x,null,g,u,!0),P&256){d.ctx.deactivate(u);return}const W=P&1&&H,X=!bt(u);let Q;if(X&&(Q=L&&L.onVnodeBeforeUnmount)&&Ce(Q,d,u),P&6)Si(u.component,g,_);else{if(P&128){u.suspense.unmount(g,_);return}W&&Me(u,null,d,"beforeUnmount"),P&64?u.type.remove(u,d,g,b,ht,_):E&&(S!==ye||B>0&&B&64)?je(E,d,g,!1,!0):(S===ye&&B&384||!b&&P&16)&&je(R,d,g),_&&Gr(u)}(X&&(Q=L&&L.onVnodeUnmounted)||W)&&me(()=>{Q&&Ce(Q,d,u),W&&Me(u,null,d,"unmounted")},g)},Gr=u=>{const{type:d,el:g,anchor:_,transition:b}=u;if(d===ye){xi(g,_);return}if(d===Pt){y(u);return}const S=()=>{s(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(u.shapeFlag&1&&b&&!b.persisted){const{leave:L,delayLeave:x}=b,R=()=>L(g,S);x?x(u.el,S,R):R()}else S()},xi=(u,d)=>{let g;for(;u!==d;)g=m(u),s(u),u=g;s(d)},Si=(u,d,g)=>{const{bum:_,scope:b,update:S,subTree:L,um:x}=u;_&&fn(_),b.stop(),S&&(S.active=!1,Le(L,u,d,g)),x&&me(x,d),me(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},je=(u,d,g,_=!1,b=!1,S=0)=>{for(let L=S;Lu.shapeFlag&6?Yt(u.component.subTree):u.shapeFlag&128?u.suspense.next():m(u.anchor||u.el);let Vn=!1;const Xr=(u,d,g)=>{u==null?d._vnode&&Le(d._vnode,null,null,!0):I(d._vnode||null,u,d,null,null,null,g),Vn||(Vn=!0,is(),_n(),Vn=!1),d._vnode=u},ht={p:I,um:Le,m:tt,r:Gr,mt:le,mc:T,pc:V,pbc:w,n:Yt,o:e};let Dn,Un;return t&&([Dn,Un]=t(ht)),{render:Xr,hydrate:Dn,createApp:Zl(Xr,Dn)}}function Gn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function nt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Wo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Br(e,t,n=!1){const r=e.children,s=t.children;if(k(r)&&k(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function qo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:qo(t)}const dc=e=>e.__isTeleport,Mt=e=>e&&(e.disabled||e.disabled===""),_s=e=>typeof SVGElement<"u"&&e instanceof SVGElement,vs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,_r=(e,t)=>{const n=e&&e.to;return se(n)?t?t(n):null:n},hc={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,a){const{mc:f,pc:h,pbc:m,o:{insert:v,querySelector:C,createText:I,createComment:$}}=a,q=Mt(t.props);let{shapeFlag:D,children:p,dynamicChildren:y}=t;if(e==null){const M=t.el=I(""),O=t.anchor=I("");v(M,n,r),v(O,n,r);const N=t.target=_r(t.props,C),T=t.targetAnchor=I("");N&&(v(T,N),i==="svg"||_s(N)?i="svg":(i==="mathml"||vs(N))&&(i="mathml"));const F=(w,j)=>{D&16&&f(p,w,j,s,o,i,l,c)};q?F(n,O):N&&F(N,T)}else{t.el=e.el;const M=t.anchor=e.anchor,O=t.target=e.target,N=t.targetAnchor=e.targetAnchor,T=Mt(e.props),F=T?n:O,w=T?M:N;if(i==="svg"||_s(O)?i="svg":(i==="mathml"||vs(O))&&(i="mathml"),y?(m(e.dynamicChildren,y,F,s,o,i,l),Br(e,t,!0)):c||h(e,t,F,w,s,o,i,l,!1),q)T?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):on(t,n,M,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const j=t.target=_r(t.props,C);j&&on(t,j,null,a,0)}else T&&on(t,O,N,a,1)}Go(t)},remove(e,t,n,r,{um:s,o:{remove:o}},i){const{shapeFlag:l,children:c,anchor:a,targetAnchor:f,target:h,props:m}=e;if(h&&o(f),i&&o(a),l&16){const v=i||!Mt(m);for(let C=0;C0?Re||mt:null,gc(),Dt>0&&Re&&Re.push(e),e}function du(e,t,n,r,s,o){return Yo(Qo(e,t,n,r,s,o,!0))}function zo(e,t,n,r,s){return Yo(oe(e,t,n,r,s,!0))}function En(e){return e?e.__v_isVNode===!0:!1}function it(e,t){return e.type===t.type&&e.key===t.key}const Jo=({key:e})=>e??null,hn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||de(e)||K(e)?{i:ce,r:e,k:t,f:!!n}:e:null);function Qo(e,t=null,n=null,r=0,s=null,o=e===ye?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jo(t),ref:t&&hn(t),scopeId:Pn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:ce};return l?(kr(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Dt>0&&!i&&Re&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Re.push(c),c}const oe=mc;function mc(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===xo)&&(e=_e),En(e)){const l=Qe(e,t,!0);return n&&kr(l,n),Dt>0&&!o&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(Tc(e)&&(e=e.__vccOpts),t){t=yc(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=Tr(l)),Z(c)&&(go(c)&&!k(c)&&(c=ie({},c)),t.style=Sr(c))}const i=se(e)?1:Rl(e)?128:dc(e)?64:Z(e)?4:K(e)?2:0;return Qo(e,t,n,r,s,i,o,!0)}function yc(e){return e?go(e)||jo(e)?ie({},e):e:null}function Qe(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,a=t?_c(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&Jo(a),ref:t&&t.ref?n&&o?k(o)?o.concat(hn(t)):[o,hn(t)]:hn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ye?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Qe(e.ssContent),ssFallback:e.ssFallback&&Qe(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&(f.transition=c.clone(f)),f}function Zo(e=" ",t=0){return oe(Et,null,e,t)}function hu(e,t){const n=oe(Pt,null,e);return n.staticCount=t,n}function pu(e="",t=!1){return t?(Xo(),zo(_e,null,e)):oe(_e,null,e)}function Ae(e){return e==null||typeof e=="boolean"?oe(_e):k(e)?oe(ye,null,e.slice()):typeof e=="object"?Ge(e):oe(Et,null,String(e))}function Ge(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Qe(e)}function kr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(k(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),kr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!jo(t)?t._ctx=ce:s===3&&ce&&(ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:ce},n=32):(t=String(t),r&64?(n=16,t=[Zo(t)]):n=8);e.children=t,e.shapeFlag|=n}function _c(...e){const t={};for(let n=0;nue||ce;let Cn,vr;{const e=Zs(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};Cn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),vr=t("__VUE_SSR_SETTERS__",n=>Gt=n)}const qt=e=>{const t=ue;return Cn(e),e.scope.on(),()=>{e.scope.off(),Cn(t)}},ws=()=>{ue&&ue.scope.off(),Cn(null)};function ei(e){return e.vnode.shapeFlag&4}let Gt=!1;function Ec(e,t=!1){t&&vr(t);const{props:n,children:r}=e.vnode,s=ei(e);tc(e,n,s,t),sc(e,r);const o=s?Cc(e,t):void 0;return t&&vr(!1),o}function Cc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Wl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?ni(e):null,o=qt(e);Ze();const i=ze(r,e,0,[e.props,s]);if(et(),o(),Ys(i)){if(i.then(ws,ws),t)return i.then(l=>{Es(e,l,t)}).catch(l=>{Kt(l,e,0)});e.asyncDep=i}else Es(e,i,t)}else ti(e,t)}function Es(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=vo(t)),ti(e,n)}let Cs;function ti(e,t,n){const r=e.type;if(!e.render){if(!t&&Cs&&!r.render){const s=r.template||Dr(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,a=ie(ie({isCustomElement:o,delimiters:l},i),c);r.render=Cs(s,a)}}e.render=r.render||xe}{const s=qt(e);Ze();try{Gl(e)}finally{et(),s()}}}const xc={get(e,t){return ve(e,"get",""),e[t]}};function ni(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,xc),slots:e.slots,emit:e.emit,expose:t}}function jn(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(vo(dn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Lt)return Lt[n](e)},has(t,n){return n in t||n in Lt}}))}function Sc(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function Tc(e){return K(e)&&"__vccOpts"in e}const ne=(e,t)=>cl(e,t,Gt);function br(e,t,n){const r=arguments.length;return r===2?Z(t)&&!k(t)?En(t)?oe(e,null,[t]):oe(e,t):oe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&En(n)&&(n=[n]),oe(e,t,n))}const Ac="3.4.27";/** -* @vue/runtime-dom v3.4.27 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const Rc="http://www.w3.org/2000/svg",Oc="http://www.w3.org/1998/Math/MathML",Xe=typeof document<"u"?document:null,xs=Xe&&Xe.createElement("template"),Lc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Xe.createElementNS(Rc,e):t==="mathml"?Xe.createElementNS(Oc,e):Xe.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Xe.createTextNode(e),createComment:e=>Xe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Xe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{xs.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=xs.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ke="transition",Tt="animation",Ut=Symbol("_vtc"),ri=(e,{slots:t})=>br(Nl,Ic(e),t);ri.displayName="Transition";const si={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ri.props=ie({},Ro,si);const rt=(e,t=[])=>{k(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ss=e=>e?k(e)?e.some(t=>t.length>1):e.length>1:!1;function Ic(e){const t={};for(const A in e)A in si||(t[A]=e[A]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:a=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,C=Mc(s),I=C&&C[0],$=C&&C[1],{onBeforeEnter:q,onEnter:D,onEnterCancelled:p,onLeave:y,onLeaveCancelled:M,onBeforeAppear:O=q,onAppear:N=D,onAppearCancelled:T=p}=t,F=(A,G,le)=>{st(A,G?f:l),st(A,G?a:i),le&&le()},w=(A,G)=>{A._isLeaving=!1,st(A,h),st(A,v),st(A,m),G&&G()},j=A=>(G,le)=>{const fe=A?N:D,U=()=>F(G,A,le);rt(fe,[G,U]),Ts(()=>{st(G,A?c:o),Ke(G,A?f:l),Ss(fe)||As(G,r,I,U)})};return ie(t,{onBeforeEnter(A){rt(q,[A]),Ke(A,o),Ke(A,i)},onBeforeAppear(A){rt(O,[A]),Ke(A,c),Ke(A,a)},onEnter:j(!1),onAppear:j(!0),onLeave(A,G){A._isLeaving=!0;const le=()=>w(A,G);Ke(A,h),Ke(A,m),Fc(),Ts(()=>{A._isLeaving&&(st(A,h),Ke(A,v),Ss(y)||As(A,r,$,le))}),rt(y,[A,le])},onEnterCancelled(A){F(A,!1),rt(p,[A])},onAppearCancelled(A){F(A,!0),rt(T,[A])},onLeaveCancelled(A){w(A),rt(M,[A])}})}function Mc(e){if(e==null)return null;if(Z(e))return[Xn(e.enter),Xn(e.leave)];{const t=Xn(e);return[t,t]}}function Xn(e){return Ii(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ut]||(e[Ut]=new Set)).add(t)}function st(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ut];n&&(n.delete(t),n.size||(e[Ut]=void 0))}function Ts(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Pc=0;function As(e,t,n,r){const s=e._endId=++Pc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Nc(e,t);if(!i)return r();const a=i+"end";let f=0;const h=()=>{e.removeEventListener(a,m),o()},m=v=>{v.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[C]||"").split(", "),s=r(`${ke}Delay`),o=r(`${ke}Duration`),i=Rs(s,o),l=r(`${Tt}Delay`),c=r(`${Tt}Duration`),a=Rs(l,c);let f=null,h=0,m=0;t===ke?i>0&&(f=ke,h=i,m=o.length):t===Tt?a>0&&(f=Tt,h=a,m=c.length):(h=Math.max(i,a),f=h>0?i>a?ke:Tt:null,m=f?f===ke?o.length:c.length:0);const v=f===ke&&/\b(transform|all)(,|$)/.test(r(`${ke}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:v}}function Rs(e,t){for(;e.lengthOs(n)+Os(e[r])))}function Os(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Fc(){return document.body.offsetHeight}function $c(e,t,n){const r=e[Ut];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ls=Symbol("_vod"),Hc=Symbol("_vsh"),jc=Symbol(""),Vc=/(^|;)\s*display\s*:/;function Dc(e,t,n){const r=e.style,s=se(n);let o=!1;if(n&&!s){if(t)if(se(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&pn(r,l,"")}else for(const i in t)n[i]==null&&pn(r,i,"");for(const i in n)i==="display"&&(o=!0),pn(r,i,n[i])}else if(s){if(t!==n){const i=r[jc];i&&(n+=";"+i),r.cssText=n,o=Vc.test(n)}}else t&&e.removeAttribute("style");Ls in e&&(e[Ls]=o?r.display:"",e[Hc]&&(r.display="none"))}const Is=/\s*!important$/;function pn(e,t,n){if(k(n))n.forEach(r=>pn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Uc(e,t);Is.test(n)?e.setProperty(dt(r),n.replace(Is,""),"important"):e[r]=n}}const Ms=["Webkit","Moz","ms"],Yn={};function Uc(e,t){const n=Yn[t];if(n)return n;let r=$e(t);if(r!=="filter"&&r in e)return Yn[t]=r;r=Tn(r);for(let s=0;szn||(Gc.then(()=>zn=0),zn=Date.now());function Yc(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Se(zc(r,n.value),t,5,[r])};return n.value=e,n.attached=Xc(),n}function zc(e,t){if(k(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const $s=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Jc=(e,t,n,r,s,o,i,l,c)=>{const a=s==="svg";t==="class"?$c(e,r,a):t==="style"?Dc(e,n,r):kt(t)?Er(t)||Wc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Qc(e,t,r,a))?kc(e,t,r,o,i,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Bc(e,t,r,a))};function Qc(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&$s(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return $s(t)&&se(n)?!1:t in e}const Hs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return k(t)?n=>fn(t,n):t};function Zc(e){e.target.composing=!0}function js(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Jn=Symbol("_assign"),gu={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Jn]=Hs(s);const o=r||s.props&&s.props.type==="number";gt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=lr(l)),e[Jn](l)}),n&>(e,"change",()=>{e.value=e.value.trim()}),t||(gt(e,"compositionstart",Zc),gt(e,"compositionend",js),gt(e,"change",js))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:s}},o){if(e[Jn]=Hs(o),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?lr(e.value):e.value,l=t??"";i!==l&&(document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===l)||(e.value=l))}},ea=["ctrl","shift","alt","meta"],ta={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ea.some(n=>e[`${n}Key`]&&!t.includes(n))},mu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=dt(s.key);if(t.some(i=>i===o||na[i]===o))return e(s)})},oi=ie({patchProp:Jc},Lc);let Ft,Vs=!1;function ra(){return Ft||(Ft=ac(oi))}function sa(){return Ft=Vs?Ft:uc(oi),Vs=!0,Ft}const _u=(...e)=>{const t=ra().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=li(r);if(!s)return;const o=t._component;!K(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,ii(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},vu=(...e)=>{const t=sa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=li(r);if(s)return n(s,!0,ii(s))},t};function ii(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function li(e){return se(e)?document.querySelector(e):e}const bu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},oa=window.__VP_SITE_DATA__;function Kr(e){return no()?(Di(e),!0):!1}function Fe(e){return typeof e=="function"?e():_o(e)}const ci=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ia=Object.prototype.toString,la=e=>ia.call(e)==="[object Object]",Bt=()=>{},Ds=ca();function ca(){var e,t;return ci&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function aa(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const ai=e=>e();function ua(e,t={}){let n,r,s=Bt;const o=l=>{clearTimeout(l),s(),s=Bt};return l=>{const c=Fe(e),a=Fe(t.maxWait);return n&&o(n),c<=0||a!==void 0&&a<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,a&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},a)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function fa(e=ai){const t=re(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:On(t),pause:n,resume:r,eventFilter:s}}function da(e){return Hn()}function ui(...e){if(e.length!==1)return gl(...e);const t=e[0];return typeof t=="function"?On(dl(()=>({get:t,set:Bt}))):re(t)}function fi(e,t,n={}){const{eventFilter:r=ai,...s}=n;return Ne(e,aa(r,t),s)}function ha(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=fa(r);return{stop:fi(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function Wr(e,t=!0,n){da()?xt(e,n):t?e():Ln(e)}function wu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return fi(e,t,{...o,eventFilter:ua(r,{maxWait:s})})}function Eu(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=Bt}=r,c=re(!s),a=i?Fr(t):re(t);let f=0;return jr(async h=>{if(!c.value)return;f++;const m=f;let v=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const C=await e(I=>{h(()=>{o&&(o.value=!1),v||I()})});m===f&&(a.value=C)}catch(C){l(C)}finally{o&&m===f&&(o.value=!1),v=!0}}),s?ne(()=>(c.value=!0,a.value)):a}function di(e){var t;const n=Fe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Oe=ci?window:void 0;function Ct(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Oe):[t,n,r,s]=e,!t)return Bt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,v)=>(f.addEventListener(h,m,v),()=>f.removeEventListener(h,m,v)),c=Ne(()=>[di(t),Fe(s)],([f,h])=>{if(i(),!f)return;const m=la(h)?{...h}:h;o.push(...n.flatMap(v=>r.map(C=>l(f,v,C,m))))},{immediate:!0,flush:"post"}),a=()=>{c(),i()};return Kr(a),a}function pa(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Cu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Oe,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=pa(t);return Ct(s,o,f=>{f.repeat&&Fe(l)||c(f)&&n(f)},i)}function ga(){const e=re(!1),t=Hn();return t&&xt(()=>{e.value=!0},t),e}function ma(e){const t=ga();return ne(()=>(t.value,!!e()))}function hi(e,t={}){const{window:n=Oe}=t,r=ma(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=re(!1),i=a=>{o.value=a.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=jr(()=>{r.value&&(l(),s=n.matchMedia(Fe(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return Kr(()=>{c(),l(),s=void 0}),o}const ln=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},cn="__vueuse_ssr_handlers__",ya=_a();function _a(){return cn in ln||(ln[cn]=ln[cn]||{}),ln[cn]}function pi(e,t){return ya[e]||t}function va(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ba={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Us="vueuse-storage";function qr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:f,window:h=Oe,eventFilter:m,onError:v=w=>{console.error(w)},initOnMounted:C}=r,I=(f?Fr:re)(typeof t=="function"?t():t);if(!n)try{n=pi("getDefaultStorage",()=>{var w;return(w=Oe)==null?void 0:w.localStorage})()}catch(w){v(w)}if(!n)return I;const $=Fe(t),q=va($),D=(s=r.serializer)!=null?s:ba[q],{pause:p,resume:y}=ha(I,()=>O(I.value),{flush:o,deep:i,eventFilter:m});h&&l&&Wr(()=>{Ct(h,"storage",T),Ct(h,Us,F),C&&T()}),C||T();function M(w,j){h&&h.dispatchEvent(new CustomEvent(Us,{detail:{key:e,oldValue:w,newValue:j,storageArea:n}}))}function O(w){try{const j=n.getItem(e);if(w==null)M(j,null),n.removeItem(e);else{const A=D.write(w);j!==A&&(n.setItem(e,A),M(j,A))}}catch(j){v(j)}}function N(w){const j=w?w.newValue:n.getItem(e);if(j==null)return c&&$!=null&&n.setItem(e,D.write($)),$;if(!w&&a){const A=D.read(j);return typeof a=="function"?a(A,$):q==="object"&&!Array.isArray(A)?{...$,...A}:A}else return typeof j!="string"?j:D.read(j)}function T(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){I.value=$;return}if(!(w&&w.key!==e)){p();try{(w==null?void 0:w.newValue)!==D.write(I.value)&&(I.value=N(w))}catch(j){v(j)}finally{w?Ln(y):y()}}}}function F(w){T(w.detail)}return I}function gi(e){return hi("(prefers-color-scheme: dark)",e)}function wa(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Oe,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=gi({window:s}),v=ne(()=>m.value?"dark":"light"),C=c||(i==null?ui(r):qr(i,r,o,{window:s,listenToStorageChanges:l})),I=ne(()=>C.value==="auto"?v.value:C.value),$=pi("updateHTMLAttrs",(y,M,O)=>{const N=typeof y=="string"?s==null?void 0:s.document.querySelector(y):di(y);if(!N)return;let T;if(f&&(T=s.document.createElement("style"),T.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild(T)),M==="class"){const F=O.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{F.includes(w)?N.classList.add(w):N.classList.remove(w)})}else N.setAttribute(M,O);f&&(s.getComputedStyle(T).opacity,document.head.removeChild(T))});function q(y){var M;$(t,n,(M=h[y])!=null?M:y)}function D(y){e.onChanged?e.onChanged(y,q):q(y)}Ne(I,D,{flush:"post",immediate:!0}),Wr(()=>D(I.value));const p=ne({get(){return a?C.value:I.value},set(y){C.value=y}});try{return Object.assign(p,{store:C,system:v,state:I})}catch{return p}}function Ea(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Oe}=e,s=wa({...e,onChanged:(l,c)=>{var a;e.onChanged?(a=e.onChanged)==null||a.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=ne(()=>s.system?s.system.value:gi({window:r}).value?"dark":"light");return ne({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Qn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function xu(e,t,n={}){const{window:r=Oe}=n;return qr(e,t,r==null?void 0:r.localStorage,n)}function mi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Zn=new WeakMap;function Su(e,t=!1){const n=re(t);let r=null,s="";Ne(ui(e),l=>{const c=Qn(Fe(l));if(c){const a=c;if(Zn.get(a)||Zn.set(a,a.style.overflow),a.style.overflow!=="hidden"&&(s=a.style.overflow),a.style.overflow==="hidden")return n.value=!0;if(n.value)return a.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Qn(Fe(e));!l||n.value||(Ds&&(r=Ct(l,"touchmove",c=>{Ca(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Qn(Fe(e));!l||!n.value||(Ds&&(r==null||r()),l.style.overflow=s,Zn.delete(l),n.value=!1)};return Kr(i),ne({get(){return n.value},set(l){l?o():i()}})}function Tu(e,t,n={}){const{window:r=Oe}=n;return qr(e,t,r==null?void 0:r.sessionStorage,n)}function Au(e={}){const{window:t=Oe,behavior:n="auto"}=e;if(!t)return{x:re(0),y:re(0)};const r=re(t.scrollX),s=re(t.scrollY),o=ne({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=ne({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return Ct(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Ru(e={}){const{window:t=Oe,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=re(n),l=re(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Wr(c),Ct("resize",c,{passive:!0}),s){const a=hi("(orientation: portrait)");Ne(a,()=>c())}return{width:i,height:l}}var er={BASE_URL:"/YAXArrays.jl/dev/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},tr={};const yi=/^(?:[a-z]+:|\/\/)/i,xa="vitepress-theme-appearance",Sa=/#.*$/,Ta=/[?#].*$/,Aa=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",_i={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Ra(e,t,n=!1){if(t===void 0)return!1;if(e=Bs(`/${e}`),n)return new RegExp(t).test(e);if(Bs(t)!==e)return!1;const r=t.match(Sa);return r?(he?location.hash:"")===r[0]:!0}function Bs(e){return decodeURI(e).replace(Ta,"").replace(Aa,"$1")}function Oa(e){return yi.test(e)}function La(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!Oa(n)&&Ra(t,`/${n}/`,!0))||"root"}function Ia(e,t){var r,s,o,i,l,c,a;const n=La(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:bi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function vi(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Ma(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Ma(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Pa(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function bi(e,t){return[...e.filter(n=>!Pa(t,n)),...t]}const Na=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Fa=/^[a-z]:/i;function ks(e){const t=Fa.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Na,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const nr=new Set;function $a(e){if(nr.size===0){const n=typeof process=="object"&&(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||(er==null?void 0:er.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>nr.add(r))}const t=e.split(".").pop();return t==null||!nr.has(t.toLowerCase())}function Ou(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Ha=Symbol(),ut=Fr(oa);function Lu(e){const t=ne(()=>Ia(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?re(!0):n?Ea({storageKey:xa,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):re(!1),s=re(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Ne(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:ne(()=>t.value.themeConfig),page:ne(()=>e.data),frontmatter:ne(()=>e.data.frontmatter),params:ne(()=>e.data.params),lang:ne(()=>t.value.lang),dir:ne(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ne(()=>t.value.localeIndex||"root"),title:ne(()=>vi(t.value,e.data)),description:ne(()=>e.data.description||t.value.description),isDark:r,hash:ne(()=>s.value)}}function ja(){const e=wt(Ha);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Va(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Ks(e){return yi.test(e)||!e.startsWith("/")?e:Va(ut.value.base,e)}function Da(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/YAXArrays.jl/dev/";t=ks(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${ks(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let gn=[];function Iu(e){gn.push(e),$n(()=>{gn=gn.filter(t=>t!==e)})}function Ua(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Ws(e,n);else if(Array.isArray(e))for(const r of e){const s=Ws(r,n);if(s){t=s;break}}return t}function Ws(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Ba=Symbol(),wi="http://a.com",ka=()=>({path:"/",component:null,data:_i});function Mu(e,t){const n=Rn(ka()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,a;l=rr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==rr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((a=r.onAfterRouteChanged)==null?void 0:a.call(r,l)))}let o=null;async function i(l,c=0,a=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,wi),h=o=f.pathname;try{let v=await e(h);if(!v)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:C,__pageData:I}=v;if(!C)throw new Error(`Invalid route component: ${C}`);n.path=he?h:Ks(h),n.component=dn(C),n.data=dn(I),he&&Ln(()=>{let $=ut.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!$.endsWith("/")&&($+=".html"),$!==f.pathname&&(f.pathname=$,l=$+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let q=null;try{q=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(D){console.warn(D)}if(q){qs(q,f.hash);return}}window.scrollTo(0,c)})}}catch(v){if(!/fetch|Page not found/.test(v.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(v),!a)try{const C=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await C.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Ks(h),n.component=t?dn(t):null;const C=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={..._i,relativePath:C}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:f}=a,{href:h,origin:m,pathname:v,hash:C,search:I}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),$=new URL(location.href);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!f&&m===$.origin&&$a(v)&&(l.preventDefault(),v===$.pathname&&I===$.search?(C!==$.hash&&(history.pushState({},"",h),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:$.href,newURL:h}))),C?qs(a,C,a.classList.contains("header-anchor")):window.scrollTo(0,0)):s(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(rr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ka(){const e=wt(Ba);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ei(){return Ka().route}function qs(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-Ua()+o;requestAnimationFrame(s)}}function rr(e){const t=new URL(e,wi);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const sr=()=>gn.forEach(e=>e()),Pu=Vr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ei(),{site:n}=ja();return()=>br(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?br(t.component,{onVnodeMounted:sr,onVnodeUpdated:sr,onVnodeUnmounted:sr}):"404 Page Not Found"])}}),Wa="modulepreload",qa=function(e){return"/YAXArrays.jl/dev/"+e},Gs={},Nu=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=qa(l),l in Gs)return;Gs[l]=!0;const c=l.endsWith(".css"),a=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${a}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":Wa,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},Fu=Vr({setup(e,{slots:t}){const n=re(!1);return xt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function $u(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(a=>a.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Hu(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let a=c.textContent||"";i&&(a=a.replace(/^ *(\$|>) /gm,"").trim()),Ga(a).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function Ga(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function ju(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=or(l);for(const a of document.head.children)if(a.isEqualNode(c)){r.push(a);return}});return}const i=o.map(or);r.forEach((l,c)=>{const a=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));a!==-1?delete i[a]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};jr(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],a=vi(i,o);a!==document.title&&(document.title=a);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):or(["meta",{name:"description",content:f}]),s(bi(i.head,Ya(c)))})}function or([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Xa(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Ya(e){return e.filter(t=>!Xa(t))}const ir=new Set,Ci=()=>document.createElement("link"),za=e=>{const t=Ci();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Ja=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let an;const Qa=he&&(an=Ci())&&an.relList&&an.relList.supports&&an.relList.supports("prefetch")?za:Ja;function Vu(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!ir.has(c)){ir.add(c);const a=Da(c);a&&Qa(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):ir.add(l))})})};xt(r);const s=Ei();Ne(()=>s.path,r),$n(()=>{n&&n.disconnect()})}export{au as $,su as A,Dl as B,Ua as C,nu as D,lu as E,ye as F,Fr as G,Iu as H,oe as I,ru as J,yi as K,Ei as L,_c as M,wt as N,Ru as O,Sr as P,Cu as Q,Ln as R,Au as S,ri as T,he as U,On as V,iu as W,Nu as X,Su as Y,ec as Z,bu as _,Zo as a,yu as a0,mu as a1,uu as a2,hu as a3,Rn as a4,gl as a5,br as a6,ju as a7,Ba as a8,Lu as a9,Ha as aa,Pu as ab,Fu as ac,ut as ad,vu as ae,Mu as af,Da as ag,Vu as ah,Hu as ai,$u as aj,di as ak,Kr as al,Eu as am,Tu as an,xu as ao,wu as ap,Ka as aq,Ct as ar,Mo as as,ou as at,gu as au,de as av,fu as aw,dn as ax,_u as ay,Ou as az,zo as b,du as c,Vr as d,pu as e,$a as f,Ks as g,ne as h,Oa as i,Qo as j,_o as k,tu as l,Ra as m,Tr as n,Xo as o,eu as p,hi as q,cu as r,re as s,Za as t,ja as u,Ne as v,Cl as w,jr as x,xt as y,$n as z}; diff --git a/dev/assets/chunks/framework.D-wbpLqx.js b/dev/assets/chunks/framework.D-wbpLqx.js new file mode 100644 index 00000000..5de4e7ef --- /dev/null +++ b/dev/assets/chunks/framework.D-wbpLqx.js @@ -0,0 +1,17 @@ +/** +* @vue/shared v3.4.30 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function wr(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const te={},mt=[],xe=()=>{},Li=()=>!1,kt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Er=e=>e.startsWith("onUpdate:"),le=Object.assign,Cr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ii=Object.prototype.hasOwnProperty,z=(e,t)=>Ii.call(e,t),k=Array.isArray,yt=e=>Sn(e)==="[object Map]",Js=e=>Sn(e)==="[object Set]",K=e=>typeof e=="function",oe=e=>typeof e=="string",et=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Qs=e=>(Z(e)||K(e))&&K(e.then)&&K(e.catch),Zs=Object.prototype.toString,Sn=e=>Zs.call(e),Mi=e=>Sn(e).slice(8,-1),eo=e=>Sn(e)==="[object Object]",xr=e=>oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=wr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Tn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Pi=/-(\w)/g,$e=Tn(e=>e.replace(Pi,(t,n)=>n?n.toUpperCase():"")),Ni=/\B([A-Z])/g,ft=Tn(e=>e.replace(Ni,"-$1").toLowerCase()),An=Tn(e=>e.charAt(0).toUpperCase()+e.slice(1)),un=Tn(e=>e?`on${An(e)}`:""),Qe=(e,t)=>!Object.is(e,t),fn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},cr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Fi=e=>{const t=oe(e)?Number(e):NaN;return isNaN(t)?e:t};let Qr;const no=()=>Qr||(Qr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Sr(e){if(k(e)){const t={};for(let n=0;n{if(n){const r=n.split(Hi);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Tr(e){let t="";if(oe(e))t=e;else if(k(e))for(let n=0;noe(e)?e:e==null?"":k(e)||Z(e)&&(e.toString===Zs||!K(e.toString))?JSON.stringify(e,so,2):String(e),so=(e,t)=>t&&t.__v_isRef?so(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[kn(r,o)+" =>"]=s,n),{})}:Js(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>kn(n))}:et(t)?kn(t):Z(t)&&!k(t)&&!eo(t)?String(t):t,kn=(e,t="")=>{var n;return et(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.30 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let we;class Bi{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=5)break}}this._dirtyLevel===1&&(this._dirtyLevel=0),Ue()}return this._dirtyLevel>=5}set dirty(t){this._dirtyLevel=t?5:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=ze,n=ct;try{return ze=!0,ct=this,this._runnings++,Zr(this),this.fn()}finally{es(this),this._runnings--,ct=n,ze=t}}stop(){this.active&&(Zr(this),es(this),this.onStop&&this.onStop(),this.active=!1)}}function Wi(e){return e.value}function Zr(e){e._trackId++,e._depsLength=0}function es(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t0&&(s??(s=e.get(r)===r._trackId))){r._dirtyLevel=2;continue}r._dirtyLevel{const n=new Map;return n.cleanup=e,n.computed=t,n},mn=new WeakMap,at=Symbol(""),fr=Symbol("");function ve(e,t,n){if(ze&&ct){let r=mn.get(e);r||mn.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=uo(()=>r.delete(n))),co(ct,s)}}function De(e,t,n,r,s,o){const i=mn.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&k(e)){const c=Number(r);i.forEach((a,f)=>{(f==="length"||!et(f)&&f>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":k(e)?xr(n)&&l.push(i.get("length")):(l.push(i.get(at)),yt(e)&&l.push(i.get(fr)));break;case"delete":k(e)||(l.push(i.get(at)),yt(e)&&l.push(i.get(fr)));break;case"set":yt(e)&&l.push(i.get(at));break}Rr();for(const c of l)c&&ao(c,5);Or()}function qi(e,t){const n=mn.get(e);return n&&n.get(t)}const Gi=wr("__proto__,__v_isRef,__isVue"),fo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(et)),ts=Xi();function Xi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){tt(),Rr();const r=J(this)[t].apply(this,n);return Or(),Ue(),r}}),e}function Yi(e){et(e)||(e=String(e));const t=J(this);return ve(t,"has",e),t.hasOwnProperty(e)}class ho{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?cl:yo:o?mo:go).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=k(t);if(!s){if(i&&z(ts,n))return Reflect.get(ts,n,r);if(n==="hasOwnProperty")return Yi}const l=Reflect.get(t,n,r);return(et(n)?fo.has(n):Gi(n))||(s||ve(t,"get",n),o)?l:de(l)?i&&xr(n)?l:l.value:Z(l)?s?Ln(l):On(l):l}}class po extends ho{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const c=$t(o);if(!yn(r)&&!$t(r)&&(o=J(o),r=J(r)),!k(t)&&de(o)&&!de(r))return c?!1:(o.value=r,!0)}const i=k(t)&&xr(n)?Number(n)e,Rn=e=>Reflect.getPrototypeOf(e);function zt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),o=J(t);n||(Qe(t,o)&&ve(s,"get",t),ve(s,"get",o));const{has:i}=Rn(s),l=r?Lr:n?Pr:Ht;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Jt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(Qe(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Qt(e,t=!1){return e=e.__v_raw,!t&&ve(J(e),"iterate",at),Reflect.get(e,"size",e)}function ns(e){e=J(e);const t=J(this);return Rn(t).has.call(t,e)||(t.add(e),De(t,"add",e,e)),this}function rs(e,t){t=J(t);const n=J(this),{has:r,get:s}=Rn(n);let o=r.call(n,e);o||(e=J(e),o=r.call(n,e));const i=s.call(n,e);return n.set(e,t),o?Qe(t,i)&&De(n,"set",e,t):De(n,"add",e,t),this}function ss(e){const t=J(this),{has:n,get:r}=Rn(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&De(t,"delete",e,void 0),o}function os(){const e=J(this),t=e.size!==0,n=e.clear();return t&&De(e,"clear",void 0,void 0),n}function Zt(e,t){return function(r,s){const o=this,i=o.__v_raw,l=J(i),c=t?Lr:e?Pr:Ht;return!e&&ve(l,"iterate",at),i.forEach((a,f)=>r.call(s,c(a),c(f),o))}}function en(e,t,n){return function(...r){const s=this.__v_raw,o=J(s),i=yt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,a=s[e](...r),f=n?Lr:t?Pr:Ht;return!t&&ve(o,"iterate",c?fr:at),{next(){const{value:h,done:m}=a.next();return m?{value:h,done:m}:{value:l?[f(h[0]),f(h[1])]:f(h),done:m}},[Symbol.iterator](){return this}}}}function ke(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function el(){const e={get(o){return zt(this,o)},get size(){return Qt(this)},has:Jt,add:ns,set:rs,delete:ss,clear:os,forEach:Zt(!1,!1)},t={get(o){return zt(this,o,!1,!0)},get size(){return Qt(this)},has:Jt,add:ns,set:rs,delete:ss,clear:os,forEach:Zt(!1,!0)},n={get(o){return zt(this,o,!0)},get size(){return Qt(this,!0)},has(o){return Jt.call(this,o,!0)},add:ke("add"),set:ke("set"),delete:ke("delete"),clear:ke("clear"),forEach:Zt(!0,!1)},r={get(o){return zt(this,o,!0,!0)},get size(){return Qt(this,!0)},has(o){return Jt.call(this,o,!0)},add:ke("add"),set:ke("set"),delete:ke("delete"),clear:ke("clear"),forEach:Zt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=en(o,!1,!1),n[o]=en(o,!0,!1),t[o]=en(o,!1,!0),r[o]=en(o,!0,!0)}),[e,n,t,r]}const[tl,nl,rl,sl]=el();function Ir(e,t){const n=t?e?sl:rl:e?nl:tl;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(z(n,s)&&s in r?n:r,s,o)}const ol={get:Ir(!1,!1)},il={get:Ir(!1,!0)},ll={get:Ir(!0,!1)};const go=new WeakMap,mo=new WeakMap,yo=new WeakMap,cl=new WeakMap;function al(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ul(e){return e.__v_skip||!Object.isExtensible(e)?0:al(Mi(e))}function On(e){return $t(e)?e:Mr(e,!1,Ji,ol,go)}function fl(e){return Mr(e,!1,Zi,il,mo)}function Ln(e){return Mr(e,!0,Qi,ll,yo)}function Mr(e,t,n,r,s){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=ul(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function Rt(e){return $t(e)?Rt(e.__v_raw):!!(e&&e.__v_isReactive)}function $t(e){return!!(e&&e.__v_isReadonly)}function yn(e){return!!(e&&e.__v_isShallow)}function _o(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function dn(e){return Object.isExtensible(e)&&to(e,"__v_skip",!0),e}const Ht=e=>Z(e)?On(e):e,Pr=e=>Z(e)?Ln(e):e;class vo{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ar(()=>t(this._value),()=>Ot(this,this.effect._dirtyLevel===3?3:4)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this),n=t.effect._dirtyLevel;return(!t._cacheable||t.effect.dirty)&&Qe(t._value,t._value=t.effect.run())&&n!==3&&Ot(t,5),Nr(t),t.effect._dirtyLevel>=2&&Ot(t,3),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function dl(e,t,n=!1){let r,s;const o=K(e);return o?(r=e,s=xe):(r=e.get,s=e.set),new vo(r,s,o||!s,n)}function Nr(e){var t;ze&&ct&&(e=J(e),co(ct,(t=e.dep)!=null?t:e.dep=uo(()=>e.dep=void 0,e instanceof vo?e:void 0)))}function Ot(e,t=5,n,r){e=J(e);const s=e.dep;s&&ao(s,t)}function de(e){return!!(e&&e.__v_isRef===!0)}function se(e){return bo(e,!1)}function Fr(e){return bo(e,!0)}function bo(e,t){return de(e)?e:new hl(e,t)}class hl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Ht(t)}get value(){return Nr(this),this._value}set value(t){const n=this.__v_isShallow||yn(t)||$t(t);t=n?t:J(t),Qe(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Ht(t),Ot(this,5))}}function wo(e){return de(e)?e.value:e}const pl={get:(e,t,n)=>wo(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Eo(e){return Rt(e)?e:new Proxy(e,pl)}class gl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Nr(this),()=>Ot(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function ml(e){return new gl(e)}class yl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return qi(J(this._object),this._key)}}class _l{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function vl(e,t,n){return de(e)?e:K(e)?new _l(e):Z(e)&&arguments.length>1?bl(e,t,n):se(e)}function bl(e,t,n){const r=e[t];return de(r)?r:new yl(e,t,n)}/** +* @vue/runtime-core v3.4.30 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Je(e,t,n,r){try{return r?e(...r):e()}catch(s){Kt(s,t,n)}}function Se(e,t,n,r){if(K(e)){const s=Je(e,t,n,r);return s&&Qs(s)&&s.catch(o=>{Kt(o,t,n)}),s}if(k(e)){const s=[];for(let o=0;o>>1,s=pe[r],o=Vt(s);oPe&&pe.splice(t,1)}function xl(e){k(e)?vt.push(...e):(!qe||!qe.includes(e,e.allowRecurse?it+1:it))&&vt.push(e),xo()}function is(e,t,n=jt?Pe+1:0){for(;nVt(n)-Vt(r));if(vt.length=0,qe){qe.push(...t);return}for(qe=t,it=0;ite.id==null?1/0:e.id,Sl=(e,t)=>{const n=Vt(e)-Vt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function So(e){dr=!1,jt=!0,pe.sort(Sl);try{for(Pe=0;Peoe(_)?_.trim():_)),h&&(s=n.map(cr))}let l,c=r[l=un(t)]||r[l=un($e(t))];!c&&o&&(c=r[l=un(ft(t))]),c&&Se(c,e,6,s);const a=r[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(a,e,6,s)}}function To(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!K(e)){const c=a=>{const f=To(a,t,!0);f&&(l=!0,le(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Z(e)&&r.set(e,null),null):(k(o)?o.forEach(c=>i[c]=null):le(i,o),Z(e)&&r.set(e,i),i)}function Pn(e,t){return!e||!kt(t)?!1:(t=t.slice(2).replace(/Once$/,""),z(e,t[0].toLowerCase()+t.slice(1))||z(e,ft(t))||z(e,t))}let fe=null,Nn=null;function vn(e){const t=fe;return fe=e,Nn=e&&e.type.__scopeId||null,t}function ru(e){Nn=e}function su(){Nn=null}function Al(e,t=fe,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&Es(-1);const o=vn(t);let i;try{i=e(...s)}finally{vn(o),r._d&&Es(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Kn(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:a,renderCache:f,props:h,data:m,setupState:_,ctx:C,inheritAttrs:I}=e,H=vn(e);let W,D;try{if(n.shapeFlag&4){const y=s||r,M=y;W=Ae(a.call(M,y,f,h,_,m,C)),D=l}else{const y=t;W=Ae(y.length>1?y(h,{attrs:l,slots:i,emit:c}):y(h,null)),D=t.props?l:Rl(l)}}catch(y){Nt.length=0,Kt(y,e,1),W=ie(me)}let p=W;if(D&&I!==!1){const y=Object.keys(D),{shapeFlag:M}=p;y.length&&M&7&&(o&&y.some(Er)&&(D=Ol(D,o)),p=Ze(p,D,!1,!0))}return n.dirs&&(p=Ze(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),W=p,vn(H),W}const Rl=e=>{let t;for(const n in e)(n==="class"||n==="style"||kt(n))&&((t||(t={}))[n]=e[n]);return t},Ol=(e,t)=>{const n={};for(const r in e)(!Er(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ll(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,a=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?ls(r,i,a):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function Oo(e,t){t&&t.pendingBranch?k(e)?t.effects.push(...e):t.effects.push(e):xl(e)}function Fn(e,t,n=ue,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{tt();const l=qt(n),c=Se(t,n,e,i);return l(),Ue(),c});return r?s.unshift(o):s.push(o),o}}const Be=e=>(t,n=ue)=>{(!Gt||e==="sp")&&Fn(e,(...r)=>t(...r),n)},Pl=Be("bm"),xt=Be("m"),Nl=Be("bu"),Fl=Be("u"),Lo=Be("bum"),$n=Be("um"),$l=Be("sp"),Hl=Be("rtg"),jl=Be("rtc");function Vl(e,t=ue){Fn("ec",e,t)}function lu(e,t){if(fe===null)return e;const n=Vn(fe),r=e.dirs||(e.dirs=[]);for(let s=0;st(i,l,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;l!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function au(e){K(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,a,f=0;const h=()=>(f++,c=null,m()),m=()=>{let _;return c||(_=c=t().catch(C=>{if(C=C instanceof Error?C:new Error(String(C)),l)return new Promise((I,H)=>{l(C,()=>I(h()),()=>H(C),f+1)});throw C}).then(C=>_!==c&&c?c:(C&&(C.__esModule||C[Symbol.toStringTag]==="Module")&&(C=C.default),a=C,C)))};return jr({name:"AsyncComponentWrapper",__asyncLoader:m,get __asyncResolved(){return a},setup(){const _=ue;if(a)return()=>Wn(a,_);const C=D=>{c=null,Kt(D,_,13,!r)};if(i&&_.suspense||Gt)return m().then(D=>()=>Wn(D,_)).catch(D=>(C(D),()=>r?ie(r,{error:D}):null));const I=se(!1),H=se(),W=se(!!s);return s&&setTimeout(()=>{W.value=!1},s),o!=null&&setTimeout(()=>{if(!I.value&&!H.value){const D=new Error(`Async component timed out after ${o}ms.`);C(D),H.value=D}},o),m().then(()=>{I.value=!0,_.parent&&Wt(_.parent.vnode)&&(_.parent.effect.dirty=!0,Mn(_.parent.update))}).catch(D=>{C(D),H.value=D}),()=>{if(I.value&&a)return Wn(a,_);if(H.value&&r)return ie(r,{error:H.value});if(n&&!W.value)return ie(n)}}})}function Wn(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=ie(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}function uu(e,t,n={},r,s){if(fe.isCE||fe.parent&&bt(fe.parent)&&fe.parent.isCE)return t!=="default"&&(n.name=t),ie("slot",n,r&&r());let o=e[t];o&&o._c&&(o._d=!1),Qo();const i=o&&Io(o(n)),l=ei(_e,{key:n.key||i&&i.key||`_${t}`},i||(r?r():[]),i&&e._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function Io(e){return e.some(t=>Cn(t)?!(t.type===me||t.type===_e&&!Io(t.children)):!0)?e:null}function fu(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:un(r)]=e[r];return n}const hr=e=>e?si(e)?Vn(e):hr(e.parent):null,Lt=le(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>hr(e.parent),$root:e=>hr(e.root),$emit:e=>e.emit,$options:e=>Vr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Mn(e.update)}),$nextTick:e=>e.n||(e.n=In.bind(e.proxy)),$watch:e=>ac.bind(e)}),qn=(e,t)=>e!==te&&!e.__isScriptSetup&&z(e,t),Dl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const _=i[t];if(_!==void 0)switch(_){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(qn(r,t))return i[t]=1,r[t];if(s!==te&&z(s,t))return i[t]=2,s[t];if((a=e.propsOptions[0])&&z(a,t))return i[t]=3,o[t];if(n!==te&&z(n,t))return i[t]=4,n[t];pr&&(i[t]=0)}}const f=Lt[t];let h,m;if(f)return t==="$attrs"&&ve(e.attrs,"get",""),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==te&&z(n,t))return i[t]=4,n[t];if(m=c.config.globalProperties,z(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return qn(s,t)?(s[t]=n,!0):r!==te&&z(r,t)?(r[t]=n,!0):z(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==te&&z(e,i)||qn(t,i)||(l=o[0])&&z(l,i)||z(r,i)||z(Lt,i)||z(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function du(){return Ul().slots}function Ul(){const e=jn();return e.setupContext||(e.setupContext=ii(e))}function as(e){return k(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let pr=!0;function Bl(e){const t=Vr(e),n=e.proxy,r=e.ctx;pr=!1,t.beforeCreate&&us(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:a,created:f,beforeMount:h,mounted:m,beforeUpdate:_,updated:C,activated:I,deactivated:H,beforeDestroy:W,beforeUnmount:D,destroyed:p,unmounted:y,render:M,renderTracked:A,renderTriggered:F,errorCaptured:$,serverPrefetch:L,expose:w,inheritAttrs:N,components:T,directives:G,filters:ne}=t;if(a&&kl(a,r,null),i)for(const Y in i){const V=i[Y];K(V)&&(r[Y]=V.bind(n))}if(s){const Y=s.call(n,n);Z(Y)&&(e.data=On(Y))}if(pr=!0,o)for(const Y in o){const V=o[Y],He=K(V)?V.bind(n,n):K(V.get)?V.get.bind(n,n):xe,Xt=!K(V)&&K(V.set)?V.set.bind(n):xe,nt=re({get:He,set:Xt});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Le=>nt.value=Le})}if(l)for(const Y in l)Mo(l[Y],r,n,Y);if(c){const Y=K(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(V=>{Yl(V,Y[V])})}f&&us(f,e,"c");function U(Y,V){k(V)?V.forEach(He=>Y(He.bind(n))):V&&Y(V.bind(n))}if(U(Pl,h),U(xt,m),U(Nl,_),U(Fl,C),U(uc,I),U(fc,H),U(Vl,$),U(jl,A),U(Hl,F),U(Lo,D),U($n,y),U($l,L),k(w))if(w.length){const Y=e.exposed||(e.exposed={});w.forEach(V=>{Object.defineProperty(Y,V,{get:()=>n[V],set:He=>n[V]=He})})}else e.exposed||(e.exposed={});M&&e.render===xe&&(e.render=M),N!=null&&(e.inheritAttrs=N),T&&(e.components=T),G&&(e.directives=G)}function kl(e,t,n=xe){k(e)&&(e=gr(e));for(const r in e){const s=e[r];let o;Z(s)?"default"in s?o=wt(s.from||r,s.default,!0):o=wt(s.from||r):o=wt(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function us(e,t,n){Se(k(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mo(e,t,n,r){const s=r.includes(".")?Wo(n,r):()=>n[r];if(oe(e)){const o=t[e];K(o)&&Ne(s,o)}else if(K(e))Ne(s,e.bind(n));else if(Z(e))if(k(e))e.forEach(o=>Mo(o,t,n,r));else{const o=K(e.handler)?e.handler.bind(n):t[e.handler];K(o)&&Ne(s,o,e)}}function Vr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(a=>bn(c,a,i,!0)),bn(c,t,i)),Z(t)&&o.set(t,c),c}function bn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&bn(e,o,n,!0),s&&s.forEach(i=>bn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Kl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Kl={data:fs,props:ds,emits:ds,methods:At,computed:At,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:At,directives:At,watch:ql,provide:fs,inject:Wl};function fs(e,t){return t?e?function(){return le(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function Wl(e,t){return At(gr(e),gr(t))}function gr(e){if(k(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}const No={},Fo=()=>Object.create(No),$o=e=>Object.getPrototypeOf(e)===No;function zl(e,t,n,r=!1){const s={},o=Fo();e.propsDefaults=Object.create(null),Ho(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:fl(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Jl(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=J(s),[c]=e.propsOptions;let a=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,_]=jo(h,t,!0);le(i,m),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return Z(e)&&r.set(e,mt),mt;if(k(o))for(let f=0;f-1,_[1]=I<0||C-1||z(_,"default"))&&l.push(h)}}}const a=[i,l];return Z(e)&&r.set(e,a),a}function hs(e){return e[0]!=="$"&&!_t(e)}function ps(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function gs(e,t){return ps(e)===ps(t)}function ms(e,t){return k(t)?t.findIndex(n=>gs(n,e)):K(t)&&gs(t,e)?0:-1}const Vo=e=>e[0]==="_"||e==="$stable",Dr=e=>k(e)?e.map(Ae):[Ae(e)],Ql=(e,t,n)=>{if(t._n)return t;const r=Al((...s)=>Dr(t(...s)),n);return r._c=!1,r},Do=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Vo(s))continue;const o=e[s];if(K(o))t[s]=Ql(s,o,r);else if(o!=null){const i=Dr(o);t[s]=()=>i}}},Uo=(e,t)=>{const n=Dr(t);e.slots.default=()=>n},Zl=(e,t)=>{const n=e.slots=Fo();if(e.vnode.shapeFlag&32){const r=t._;r?(le(n,t),to(n,"_",r,!0)):Do(t,n)}else t&&Uo(e,t)},ec=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=te;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(le(s,t),!n&&l===1&&delete s._):(o=!t.$stable,Do(t,s)),i=t}else t&&(Uo(e,t),i={default:1});if(o)for(const l in s)!Vo(l)&&i[l]==null&&delete s[l]};function wn(e,t,n,r,s=!1){if(k(e)){e.forEach((m,_)=>wn(m,t&&(k(t)?t[_]:t),n,r,s));return}if(bt(r)&&!s)return;const o=r.shapeFlag&4?Vn(r.component):r.el,i=s?null:o,{i:l,r:c}=e,a=t&&t.r,f=l.refs===te?l.refs={}:l.refs,h=l.setupState;if(a!=null&&a!==c&&(oe(a)?(f[a]=null,z(h,a)&&(h[a]=null)):de(a)&&(a.value=null)),K(c))Je(c,l,12,[i,f]);else{const m=oe(c),_=de(c);if(m||_){const C=()=>{if(e.f){const I=m?z(h,c)?h[c]:f[c]:c.value;s?k(I)&&Cr(I,o):k(I)?I.includes(o)||I.push(o):m?(f[c]=[o],z(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else m?(f[c]=i,z(h,c)&&(h[c]=i)):_&&(c.value=i,e.k&&(f[e.k]=i))};i?(C.id=-1,ye(C,n)):C()}}}let ys=!1;const pt=()=>{ys||(console.error("Hydration completed but contains mismatches."),ys=!0)},tc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",nc=e=>e.namespaceURI.includes("MathML"),tn=e=>{if(tc(e))return"svg";if(nc(e))return"mathml"},nn=e=>e.nodeType===8;function rc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:a}}=e,f=(p,y)=>{if(!y.hasChildNodes()){n(null,p,y),_n(),y._vnode=p;return}h(y.firstChild,p,null,null,null),_n(),y._vnode=p},h=(p,y,M,A,F,$=!1)=>{$=$||!!y.dynamicChildren;const L=nn(p)&&p.data==="[",w=()=>I(p,y,M,A,F,L),{type:N,ref:T,shapeFlag:G,patchFlag:ne}=y;let ce=p.nodeType;y.el=p,ne===-2&&($=!1,y.dynamicChildren=null);let U=null;switch(N){case Et:ce!==3?y.children===""?(c(y.el=s(""),i(p),p),U=p):U=w():(p.data!==y.children&&(pt(),p.data=y.children),U=o(p));break;case me:D(p)?(U=o(p),W(y.el=p.content.firstChild,p,M)):ce!==8||L?U=w():U=o(p);break;case Pt:if(L&&(p=o(p),ce=p.nodeType),ce===1||ce===3){U=p;const Y=!y.children.length;for(let V=0;V{$=$||!!y.dynamicChildren;const{type:L,props:w,patchFlag:N,shapeFlag:T,dirs:G,transition:ne}=y,ce=L==="input"||L==="option";if(ce||N!==-1){G&&Me(y,null,M,"created");let U=!1;if(D(p)){U=ko(A,ne)&&M&&M.vnode.props&&M.vnode.props.appear;const V=p.content.firstChild;U&&ne.beforeEnter(V),W(V,p,M),y.el=p=V}if(T&16&&!(w&&(w.innerHTML||w.textContent))){let V=_(p.firstChild,y,p,M,A,F,$);for(;V;){pt();const He=V;V=V.nextSibling,l(He)}}else T&8&&p.textContent!==y.children&&(pt(),p.textContent=y.children);if(w)if(ce||!$||N&48)for(const V in w)(ce&&(V.endsWith("value")||V==="indeterminate")||kt(V)&&!_t(V)||V[0]===".")&&r(p,V,null,w[V],void 0,void 0,M);else w.onClick&&r(p,"onClick",null,w.onClick,void 0,void 0,M);let Y;(Y=w&&w.onVnodeBeforeMount)&&Ce(Y,M,y),G&&Me(y,null,M,"beforeMount"),((Y=w&&w.onVnodeMounted)||G||U)&&Oo(()=>{Y&&Ce(Y,M,y),U&&ne.enter(p),G&&Me(y,null,M,"mounted")},A)}return p.nextSibling},_=(p,y,M,A,F,$,L)=>{L=L||!!y.dynamicChildren;const w=y.children,N=w.length;for(let T=0;T{const{slotScopeIds:L}=y;L&&(F=F?F.concat(L):L);const w=i(p),N=_(o(p),y,w,M,A,F,$);return N&&nn(N)&&N.data==="]"?o(y.anchor=N):(pt(),c(y.anchor=a("]"),w,N),N)},I=(p,y,M,A,F,$)=>{if(pt(),y.el=null,$){const N=H(p);for(;;){const T=o(p);if(T&&T!==N)l(T);else break}}const L=o(p),w=i(p);return l(p),n(null,y,w,L,M,A,tn(w),F),L},H=(p,y="[",M="]")=>{let A=0;for(;p;)if(p=o(p),p&&nn(p)&&(p.data===y&&A++,p.data===M)){if(A===0)return o(p);A--}return p},W=(p,y,M)=>{const A=y.parentNode;A&&A.replaceChild(p,y);let F=M;for(;F;)F.vnode.el===y&&(F.vnode.el=F.subTree.el=p),F=F.parent},D=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[f,h]}const ye=Oo;function sc(e){return Bo(e)}function oc(e){return Bo(e,rc)}function Bo(e,t){const n=no();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:a,setElementText:f,parentNode:h,nextSibling:m,setScopeId:_=xe,insertStaticContent:C}=e,I=(u,d,g,v=null,b=null,S=null,O=void 0,x=null,R=!!d.dynamicChildren)=>{if(u===d)return;u&&!lt(u,d)&&(v=Yt(u),Le(u,b,S,!0),u=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:E,ref:P,shapeFlag:B}=d;switch(E){case Et:H(u,d,g,v);break;case me:W(u,d,g,v);break;case Pt:u==null&&D(d,g,v,O);break;case _e:T(u,d,g,v,b,S,O,x,R);break;default:B&1?M(u,d,g,v,b,S,O,x,R):B&6?G(u,d,g,v,b,S,O,x,R):(B&64||B&128)&&E.process(u,d,g,v,b,S,O,x,R,dt)}P!=null&&b&&wn(P,u&&u.ref,S,d||u,!d)},H=(u,d,g,v)=>{if(u==null)r(d.el=l(d.children),g,v);else{const b=d.el=u.el;d.children!==u.children&&a(b,d.children)}},W=(u,d,g,v)=>{u==null?r(d.el=c(d.children||""),g,v):d.el=u.el},D=(u,d,g,v)=>{[u.el,u.anchor]=C(u.children,d,g,v,u.el,u.anchor)},p=({el:u,anchor:d},g,v)=>{let b;for(;u&&u!==d;)b=m(u),r(u,g,v),u=b;r(d,g,v)},y=({el:u,anchor:d})=>{let g;for(;u&&u!==d;)g=m(u),s(u),u=g;s(d)},M=(u,d,g,v,b,S,O,x,R)=>{d.type==="svg"?O="svg":d.type==="math"&&(O="mathml"),u==null?A(d,g,v,b,S,O,x,R):L(u,d,b,S,O,x,R)},A=(u,d,g,v,b,S,O,x)=>{let R,E;const{props:P,shapeFlag:B,transition:j,dirs:q}=u;if(R=u.el=i(u.type,S,P&&P.is,P),B&8?f(R,u.children):B&16&&$(u.children,R,null,v,b,Gn(u,S),O,x),q&&Me(u,null,v,"created"),F(R,u,u.scopeId,O,v),P){for(const ee in P)ee!=="value"&&!_t(ee)&&o(R,ee,null,P[ee],S,u.children,v,b,je);"value"in P&&o(R,"value",null,P.value,S),(E=P.onVnodeBeforeMount)&&Ce(E,v,u)}q&&Me(u,null,v,"beforeMount");const X=ko(b,j);X&&j.beforeEnter(R),r(R,d,g),((E=P&&P.onVnodeMounted)||X||q)&&ye(()=>{E&&Ce(E,v,u),X&&j.enter(R),q&&Me(u,null,v,"mounted")},b)},F=(u,d,g,v,b)=>{if(g&&_(u,g),v)for(let S=0;S{for(let E=R;E{const x=d.el=u.el;let{patchFlag:R,dynamicChildren:E,dirs:P}=d;R|=u.patchFlag&16;const B=u.props||te,j=d.props||te;let q;if(g&&rt(g,!1),(q=j.onVnodeBeforeUpdate)&&Ce(q,g,d,u),P&&Me(d,u,g,"beforeUpdate"),g&&rt(g,!0),E?w(u.dynamicChildren,E,x,g,v,Gn(d,b),S):O||V(u,d,x,null,g,v,Gn(d,b),S,!1),R>0){if(R&16)N(x,d,B,j,g,v,b);else if(R&2&&B.class!==j.class&&o(x,"class",null,j.class,b),R&4&&o(x,"style",B.style,j.style,b),R&8){const X=d.dynamicProps;for(let ee=0;ee{q&&Ce(q,g,d,u),P&&Me(d,u,g,"updated")},v)},w=(u,d,g,v,b,S,O)=>{for(let x=0;x{if(g!==v){if(g!==te)for(const x in g)!_t(x)&&!(x in v)&&o(u,x,g[x],null,O,d.children,b,S,je);for(const x in v){if(_t(x))continue;const R=v[x],E=g[x];R!==E&&x!=="value"&&o(u,x,E,R,O,d.children,b,S,je)}"value"in v&&o(u,"value",g.value,v.value,O)}},T=(u,d,g,v,b,S,O,x,R)=>{const E=d.el=u?u.el:l(""),P=d.anchor=u?u.anchor:l("");let{patchFlag:B,dynamicChildren:j,slotScopeIds:q}=d;q&&(x=x?x.concat(q):q),u==null?(r(E,g,v),r(P,g,v),$(d.children||[],g,P,b,S,O,x,R)):B>0&&B&64&&j&&u.dynamicChildren?(w(u.dynamicChildren,j,g,b,S,O,x),(d.key!=null||b&&d===b.subTree)&&Ur(u,d,!0)):V(u,d,g,P,b,S,O,x,R)},G=(u,d,g,v,b,S,O,x,R)=>{d.slotScopeIds=x,u==null?d.shapeFlag&512?b.ctx.activate(d,g,v,O,R):ne(d,g,v,b,S,O,R):ce(u,d,R)},ne=(u,d,g,v,b,S,O)=>{const x=u.component=Sc(u,v,b);if(Wt(u)&&(x.ctx.renderer=dt),Tc(x),x.asyncDep){if(b&&b.registerDep(x,U,O),!u.el){const R=x.subTree=ie(me);W(null,R,d,g)}}else U(x,u,d,g,b,S,O)},ce=(u,d,g)=>{const v=d.component=u.component;if(Ll(u,d,g))if(v.asyncDep&&!v.asyncResolved){Y(v,d,g);return}else v.next=d,Cl(v.update),v.effect.dirty=!0,v.update();else d.el=u.el,v.vnode=d},U=(u,d,g,v,b,S,O)=>{const x=()=>{if(u.isMounted){let{next:P,bu:B,u:j,parent:q,vnode:X}=u;{const ht=Ko(u);if(ht){P&&(P.el=X.el,Y(u,P,O)),ht.asyncDep.then(()=>{u.isUnmounted||x()});return}}let ee=P,Q;rt(u,!1),P?(P.el=X.el,Y(u,P,O)):P=X,B&&fn(B),(Q=P.props&&P.props.onVnodeBeforeUpdate)&&Ce(Q,q,P,X),rt(u,!0);const ae=Kn(u),Te=u.subTree;u.subTree=ae,I(Te,ae,h(Te.el),Yt(Te),u,b,S),P.el=ae.el,ee===null&&Il(u,ae.el),j&&ye(j,b),(Q=P.props&&P.props.onVnodeUpdated)&&ye(()=>Ce(Q,q,P,X),b)}else{let P;const{el:B,props:j}=d,{bm:q,m:X,parent:ee}=u,Q=bt(d);if(rt(u,!1),q&&fn(q),!Q&&(P=j&&j.onVnodeBeforeMount)&&Ce(P,ee,d),rt(u,!0),B&&Bn){const ae=()=>{u.subTree=Kn(u),Bn(B,u.subTree,u,b,null)};Q?d.type.__asyncLoader().then(()=>!u.isUnmounted&&ae()):ae()}else{const ae=u.subTree=Kn(u);I(null,ae,g,v,u,b,S),d.el=ae.el}if(X&&ye(X,b),!Q&&(P=j&&j.onVnodeMounted)){const ae=d;ye(()=>Ce(P,ee,ae),b)}(d.shapeFlag&256||ee&&bt(ee.vnode)&&ee.vnode.shapeFlag&256)&&u.a&&ye(u.a,b),u.isMounted=!0,d=g=v=null}},R=u.effect=new Ar(x,xe,()=>Mn(E),u.scope),E=u.update=()=>{R.dirty&&R.run()};E.id=u.uid,rt(u,!0),E()},Y=(u,d,g)=>{d.component=u;const v=u.vnode.props;u.vnode=d,u.next=null,Jl(u,d.props,v,g),ec(u,d.children,g),tt(),is(u),Ue()},V=(u,d,g,v,b,S,O,x,R=!1)=>{const E=u&&u.children,P=u?u.shapeFlag:0,B=d.children,{patchFlag:j,shapeFlag:q}=d;if(j>0){if(j&128){Xt(E,B,g,v,b,S,O,x,R);return}else if(j&256){He(E,B,g,v,b,S,O,x,R);return}}q&8?(P&16&&je(E,b,S),B!==E&&f(g,B)):P&16?q&16?Xt(E,B,g,v,b,S,O,x,R):je(E,b,S,!0):(P&8&&f(g,""),q&16&&$(B,g,v,b,S,O,x,R))},He=(u,d,g,v,b,S,O,x,R)=>{u=u||mt,d=d||mt;const E=u.length,P=d.length,B=Math.min(E,P);let j;for(j=0;jP?je(u,b,S,!0,!1,B):$(d,g,v,b,S,O,x,R,B)},Xt=(u,d,g,v,b,S,O,x,R)=>{let E=0;const P=d.length;let B=u.length-1,j=P-1;for(;E<=B&&E<=j;){const q=u[E],X=d[E]=R?Xe(d[E]):Ae(d[E]);if(lt(q,X))I(q,X,g,null,b,S,O,x,R);else break;E++}for(;E<=B&&E<=j;){const q=u[B],X=d[j]=R?Xe(d[j]):Ae(d[j]);if(lt(q,X))I(q,X,g,null,b,S,O,x,R);else break;B--,j--}if(E>B){if(E<=j){const q=j+1,X=qj)for(;E<=B;)Le(u[E],b,S,!0),E++;else{const q=E,X=E,ee=new Map;for(E=X;E<=j;E++){const be=d[E]=R?Xe(d[E]):Ae(d[E]);be.key!=null&&ee.set(be.key,E)}let Q,ae=0;const Te=j-X+1;let ht=!1,Yr=0;const St=new Array(Te);for(E=0;E=Te){Le(be,b,S,!0);continue}let Ie;if(be.key!=null)Ie=ee.get(be.key);else for(Q=X;Q<=j;Q++)if(St[Q-X]===0&<(be,d[Q])){Ie=Q;break}Ie===void 0?Le(be,b,S,!0):(St[Ie-X]=E+1,Ie>=Yr?Yr=Ie:ht=!0,I(be,d[Ie],g,null,b,S,O,x,R),ae++)}const zr=ht?ic(St):mt;for(Q=zr.length-1,E=Te-1;E>=0;E--){const be=X+E,Ie=d[be],Jr=be+1{const{el:S,type:O,transition:x,children:R,shapeFlag:E}=u;if(E&6){nt(u.component.subTree,d,g,v);return}if(E&128){u.suspense.move(d,g,v);return}if(E&64){O.move(u,d,g,dt);return}if(O===_e){r(S,d,g);for(let B=0;Bx.enter(S),b);else{const{leave:B,delayLeave:j,afterLeave:q}=x,X=()=>r(S,d,g),ee=()=>{B(S,()=>{X(),q&&q()})};j?j(S,X,ee):ee()}else r(S,d,g)},Le=(u,d,g,v=!1,b=!1)=>{const{type:S,props:O,ref:x,children:R,dynamicChildren:E,shapeFlag:P,patchFlag:B,dirs:j,memoIndex:q}=u;if(B===-2&&(b=!1),x!=null&&wn(x,null,g,u,!0),q!=null&&(d.renderCache[q]=void 0),P&256){d.ctx.deactivate(u);return}const X=P&1&&j,ee=!bt(u);let Q;if(ee&&(Q=O&&O.onVnodeBeforeUnmount)&&Ce(Q,d,u),P&6)Oi(u.component,g,v);else{if(P&128){u.suspense.unmount(g,v);return}X&&Me(u,null,d,"beforeUnmount"),P&64?u.type.remove(u,d,g,dt,v):E&&(S!==_e||B>0&&B&64)?je(E,d,g,!1,!0):(S===_e&&B&384||!b&&P&16)&&je(R,d,g),v&&Gr(u)}(ee&&(Q=O&&O.onVnodeUnmounted)||X)&&ye(()=>{Q&&Ce(Q,d,u),X&&Me(u,null,d,"unmounted")},g)},Gr=u=>{const{type:d,el:g,anchor:v,transition:b}=u;if(d===_e){Ri(g,v);return}if(d===Pt){y(u);return}const S=()=>{s(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(u.shapeFlag&1&&b&&!b.persisted){const{leave:O,delayLeave:x}=b,R=()=>O(g,S);x?x(u.el,S,R):R()}else S()},Ri=(u,d)=>{let g;for(;u!==d;)g=m(u),s(u),u=g;s(d)},Oi=(u,d,g)=>{const{bum:v,scope:b,update:S,subTree:O,um:x,m:R,a:E}=u;_s(R),_s(E),v&&fn(v),b.stop(),S&&(S.active=!1,Le(O,u,d,g)),x&&ye(x,d),ye(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},je=(u,d,g,v=!1,b=!1,S=0)=>{for(let O=S;Ou.shapeFlag&6?Yt(u.component.subTree):u.shapeFlag&128?u.suspense.next():m(u.anchor||u.el);let Dn=!1;const Xr=(u,d,g)=>{u==null?d._vnode&&Le(d._vnode,null,null,!0):I(d._vnode||null,u,d,null,null,null,g),Dn||(Dn=!0,is(),_n(),Dn=!1),d._vnode=u},dt={p:I,um:Le,m:nt,r:Gr,mt:ne,mc:$,pc:V,pbc:w,n:Yt,o:e};let Un,Bn;return t&&([Un,Bn]=t(dt)),{render:Xr,hydrate:Un,createApp:Xl(Xr,Un)}}function Gn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ko(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ur(e,t,n=!1){const r=e.children,s=t.children;if(k(r)&&k(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ko(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ko(t)}function _s(e){if(e)for(let t=0;twt(lc);function Br(e,t){return Hn(e,null,t)}function hu(e,t){return Hn(e,null,{flush:"post"})}const rn={};function Ne(e,t,n){return Hn(e,t,n)}function Hn(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:l}=te){if(t&&o){const A=t;t=(...F)=>{A(...F),M()}}const c=ue,a=A=>r===!0?A:Ye(A,r===!1?1:void 0);let f,h=!1,m=!1;if(de(e)?(f=()=>e.value,h=yn(e)):Rt(e)?(f=()=>a(e),h=!0):k(e)?(m=!0,h=e.some(A=>Rt(A)||yn(A)),f=()=>e.map(A=>{if(de(A))return A.value;if(Rt(A))return a(A);if(K(A))return Je(A,c,2)})):K(e)?t?f=()=>Je(e,c,2):f=()=>(_&&_(),Se(e,c,3,[C])):f=xe,t&&r){const A=f;f=()=>Ye(A())}let _,C=A=>{_=p.onStop=()=>{Je(A,c,4),_=p.onStop=void 0}},I;if(Gt)if(C=xe,t?n&&Se(t,c,3,[f(),m?[]:void 0,C]):f(),s==="sync"){const A=cc();I=A.__watcherHandles||(A.__watcherHandles=[])}else return xe;let H=m?new Array(e.length).fill(rn):rn;const W=()=>{if(!(!p.active||!p.dirty))if(t){const A=p.run();(r||h||(m?A.some((F,$)=>Qe(F,H[$])):Qe(A,H)))&&(_&&_(),Se(t,c,3,[A,H===rn?void 0:m&&H[0]===rn?[]:H,C]),H=A)}else p.run()};W.allowRecurse=!!t;let D;s==="sync"?D=W:s==="post"?D=()=>ye(W,c&&c.suspense):(W.pre=!0,c&&(W.id=c.uid),D=()=>Mn(W));const p=new Ar(f,xe,D),y=oo(),M=()=>{p.stop(),y&&Cr(y.effects,p)};return t?n?W():H=p.run():s==="post"?ye(p.run.bind(p),c&&c.suspense):p.run(),I&&I.push(M),M}function ac(e,t,n){const r=this.proxy,s=oe(e)?e.includes(".")?Wo(r,e):()=>r[e]:e.bind(r,r);let o;K(t)?o=t:(o=t.handler,n=t);const i=qt(this),l=Hn(s,o.bind(r),n);return i(),l}function Wo(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{Ye(r,t,n)});else if(eo(e)){for(const r in e)Ye(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Ye(e[r],t,n)}return e}const Wt=e=>e.type.__isKeepAlive;function uc(e,t){qo(e,"a",t)}function fc(e,t){qo(e,"da",t)}function qo(e,t,n=ue){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Fn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Wt(s.parent.vnode)&&dc(r,t,n,s),s=s.parent}}function dc(e,t,n,r){const s=Fn(t,e,r,!0);$n(()=>{Cr(r[t],s)},n)}const Ge=Symbol("_leaveCb"),sn=Symbol("_enterCb");function hc(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return xt(()=>{e.isMounted=!0}),Lo(()=>{e.isUnmounting=!0}),e}const Ee=[Function,Array],Go={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ee,onEnter:Ee,onAfterEnter:Ee,onEnterCancelled:Ee,onBeforeLeave:Ee,onLeave:Ee,onAfterLeave:Ee,onLeaveCancelled:Ee,onBeforeAppear:Ee,onAppear:Ee,onAfterAppear:Ee,onAppearCancelled:Ee},Xo=e=>{const t=e.subTree;return t.component?Xo(t.component):t},pc={name:"BaseTransition",props:Go,setup(e,{slots:t}){const n=jn(),r=hc();return()=>{const s=t.default&&zo(t.default(),!0);if(!s||!s.length)return;let o=s[0];if(s.length>1){for(const m of s)if(m.type!==me){o=m;break}}const i=J(e),{mode:l}=i;if(r.isLeaving)return Xn(o);const c=vs(o);if(!c)return Xn(o);let a=yr(c,i,r,n,m=>a=m);En(c,a);const f=n.subTree,h=f&&vs(f);if(h&&h.type!==me&&!lt(c,h)&&Xo(n).type!==me){const m=yr(h,i,r,n);if(En(h,m),l==="out-in"&&c.type!==me)return r.isLeaving=!0,m.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Xn(o);l==="in-out"&&c.type!==me&&(m.delayLeave=(_,C,I)=>{const H=Yo(r,h);H[String(h.key)]=h,_[Ge]=()=>{C(),_[Ge]=void 0,delete a.delayedLeave},a.delayedLeave=I})}return o}}},gc=pc;function Yo(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function yr(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:a,onAfterEnter:f,onEnterCancelled:h,onBeforeLeave:m,onLeave:_,onAfterLeave:C,onLeaveCancelled:I,onBeforeAppear:H,onAppear:W,onAfterAppear:D,onAppearCancelled:p}=t,y=String(e.key),M=Yo(n,e),A=(L,w)=>{L&&Se(L,r,9,w)},F=(L,w)=>{const N=w[1];A(L,w),k(L)?L.every(T=>T.length<=1)&&N():L.length<=1&&N()},$={mode:i,persisted:l,beforeEnter(L){let w=c;if(!n.isMounted)if(o)w=H||c;else return;L[Ge]&&L[Ge](!0);const N=M[y];N&<(e,N)&&N.el[Ge]&&N.el[Ge](),A(w,[L])},enter(L){let w=a,N=f,T=h;if(!n.isMounted)if(o)w=W||a,N=D||f,T=p||h;else return;let G=!1;const ne=L[sn]=ce=>{G||(G=!0,ce?A(T,[L]):A(N,[L]),$.delayedLeave&&$.delayedLeave(),L[sn]=void 0)};w?F(w,[L,ne]):ne()},leave(L,w){const N=String(e.key);if(L[sn]&&L[sn](!0),n.isUnmounting)return w();A(m,[L]);let T=!1;const G=L[Ge]=ne=>{T||(T=!0,w(),ne?A(I,[L]):A(C,[L]),L[Ge]=void 0,M[N]===e&&delete M[N])};M[N]=e,_?F(_,[L,G]):G()},clone(L){const w=yr(L,t,n,r,s);return s&&s(w),w}};return $}function Xn(e){if(Wt(e))return e=Ze(e),e.children=null,e}function vs(e){if(!Wt(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&K(n.default))return n.default()}}function En(e,t){e.shapeFlag&6&&e.component?En(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function zo(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oe.__isTeleport,Mt=e=>e&&(e.disabled||e.disabled===""),bs=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ws=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,_r=(e,t)=>{const n=e&&e.to;return oe(n)?t?t(n):null:n},yc={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,a){const{mc:f,pc:h,pbc:m,o:{insert:_,querySelector:C,createText:I,createComment:H}}=a,W=Mt(t.props);let{shapeFlag:D,children:p,dynamicChildren:y}=t;if(e==null){const M=t.el=I(""),A=t.anchor=I("");_(M,n,r),_(A,n,r);const F=t.target=_r(t.props,C),$=t.targetAnchor=I("");F&&(_($,F),i==="svg"||bs(F)?i="svg":(i==="mathml"||ws(F))&&(i="mathml"));const L=(w,N)=>{D&16&&f(p,w,N,s,o,i,l,c)};W?L(n,A):F&&L(F,$)}else{t.el=e.el;const M=t.anchor=e.anchor,A=t.target=e.target,F=t.targetAnchor=e.targetAnchor,$=Mt(e.props),L=$?n:A,w=$?M:F;if(i==="svg"||bs(A)?i="svg":(i==="mathml"||ws(A))&&(i="mathml"),y?(m(e.dynamicChildren,y,L,s,o,i,l),Ur(e,t,!0)):c||h(e,t,L,w,s,o,i,l,!1),W)$?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):on(t,n,M,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=_r(t.props,C);N&&on(t,N,null,a,0)}else $&&on(t,A,F,a,1)}Jo(t)},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetAnchor:a,target:f,props:h}=e;if(f&&s(a),o&&s(c),i&16){const m=o||!Mt(h);for(let _=0;_0?Re||mt:null,vc(),Dt>0&&Re&&Re.push(e),e}function gu(e,t,n,r,s,o){return Zo(ni(e,t,n,r,s,o,!0))}function ei(e,t,n,r,s){return Zo(ie(e,t,n,r,s,!0))}function Cn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const ti=({key:e})=>e??null,hn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?oe(e)||de(e)||K(e)?{i:fe,r:e,k:t,f:!!n}:e:null);function ni(e,t=null,n=null,r=0,s=null,o=e===_e?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ti(t),ref:t&&hn(t),scopeId:Nn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:fe};return l?(kr(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=oe(n)?8:16),Dt>0&&!i&&Re&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Re.push(c),c}const ie=bc;function bc(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Ao)&&(e=me),Cn(e)){const l=Ze(e,t,!0);return n&&kr(l,n),Dt>0&&!o&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag=-2,l}if(Lc(e)&&(e=e.__vccOpts),t){t=wc(t);let{class:l,style:c}=t;l&&!oe(l)&&(t.class=Tr(l)),Z(c)&&(_o(c)&&!k(c)&&(c=le({},c)),t.style=Sr(c))}const i=oe(e)?1:Ml(e)?128:mc(e)?64:Z(e)?4:K(e)?2:0;return ni(e,t,n,r,s,i,o,!0)}function wc(e){return e?_o(e)||$o(e)?le({},e):e:null}function Ze(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,a=t?Ec(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&ti(a),ref:t&&t.ref?n&&o?k(o)?o.concat(hn(t)):[o,hn(t)]:hn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ze(e.ssContent),ssFallback:e.ssFallback&&Ze(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&En(f,c.clone(f)),f}function ri(e=" ",t=0){return ie(Et,null,e,t)}function mu(e,t){const n=ie(Pt,null,e);return n.staticCount=t,n}function yu(e="",t=!1){return t?(Qo(),ei(me,null,e)):ie(me,null,e)}function Ae(e){return e==null||typeof e=="boolean"?ie(me):k(e)?ie(_e,null,e.slice()):typeof e=="object"?Xe(e):ie(Et,null,String(e))}function Xe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ze(e)}function kr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(k(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),kr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!$o(t)?t._ctx=fe:s===3&&fe&&(fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:fe},n=32):(t=String(t),r&64?(n=16,t=[ri(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ec(...e){const t={};for(let n=0;nue||fe;let xn,vr;{const e=no(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};xn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),vr=t("__VUE_SSR_SETTERS__",n=>Gt=n)}const qt=e=>{const t=ue;return xn(e),e.scope.on(),()=>{e.scope.off(),xn(t)}},Cs=()=>{ue&&ue.scope.off(),xn(null)};function si(e){return e.vnode.shapeFlag&4}let Gt=!1;function Tc(e,t=!1){t&&vr(t);const{props:n,children:r}=e.vnode,s=si(e);zl(e,n,s,t),Zl(e,r);const o=s?Ac(e,t):void 0;return t&&vr(!1),o}function Ac(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Dl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?ii(e):null,o=qt(e);tt();const i=Je(r,e,0,[e.props,s]);if(Ue(),o(),Qs(i)){if(i.then(Cs,Cs),t)return i.then(l=>{xs(e,l,t)}).catch(l=>{Kt(l,e,0)});e.asyncDep=i}else xs(e,i,t)}else oi(e,t)}function xs(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=Eo(t)),oi(e,n)}let Ss;function oi(e,t,n){const r=e.type;if(!e.render){if(!t&&Ss&&!r.render){const s=r.template||Vr(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,a=le(le({isCustomElement:o,delimiters:l},i),c);r.render=Ss(s,a)}}e.render=r.render||xe}{const s=qt(e);tt();try{Bl(e)}finally{Ue(),s()}}}const Rc={get(e,t){return ve(e,"get",""),e[t]}};function ii(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Rc),slots:e.slots,emit:e.emit,expose:t}}function Vn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Eo(dn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Lt)return Lt[n](e)},has(t,n){return n in t||n in Lt}})):e.proxy}function Oc(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function Lc(e){return K(e)&&"__vccOpts"in e}const re=(e,t)=>dl(e,t,Gt);function br(e,t,n){const r=arguments.length;return r===2?Z(t)&&!k(t)?Cn(t)?ie(e,null,[t]):ie(e,t):ie(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Cn(n)&&(n=[n]),ie(e,t,n))}const Ic="3.4.30";/** +* @vue/runtime-dom v3.4.30 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Mc="http://www.w3.org/2000/svg",Pc="http://www.w3.org/1998/Math/MathML",Ve=typeof document<"u"?document:null,Ts=Ve&&Ve.createElement("template"),Nc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ve.createElementNS(Mc,e):t==="mathml"?Ve.createElementNS(Pc,e):n?Ve.createElement(e,{is:n}):Ve.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ve.createTextNode(e),createComment:e=>Ve.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ve.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Ts.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Ts.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ke="transition",Tt="animation",Ut=Symbol("_vtc"),li=(e,{slots:t})=>br(gc,Fc(e),t);li.displayName="Transition";const ci={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};li.props=le({},Go,ci);const st=(e,t=[])=>{k(e)?e.forEach(n=>n(...t)):e&&e(...t)},As=e=>e?k(e)?e.some(t=>t.length>1):e.length>1:!1;function Fc(e){const t={};for(const T in e)T in ci||(t[T]=e[T]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:a=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,C=$c(s),I=C&&C[0],H=C&&C[1],{onBeforeEnter:W,onEnter:D,onEnterCancelled:p,onLeave:y,onLeaveCancelled:M,onBeforeAppear:A=W,onAppear:F=D,onAppearCancelled:$=p}=t,L=(T,G,ne)=>{ot(T,G?f:l),ot(T,G?a:i),ne&&ne()},w=(T,G)=>{T._isLeaving=!1,ot(T,h),ot(T,_),ot(T,m),G&&G()},N=T=>(G,ne)=>{const ce=T?F:D,U=()=>L(G,T,ne);st(ce,[G,U]),Rs(()=>{ot(G,T?c:o),We(G,T?f:l),As(ce)||Os(G,r,I,U)})};return le(t,{onBeforeEnter(T){st(W,[T]),We(T,o),We(T,i)},onBeforeAppear(T){st(A,[T]),We(T,c),We(T,a)},onEnter:N(!1),onAppear:N(!0),onLeave(T,G){T._isLeaving=!0;const ne=()=>w(T,G);We(T,h),We(T,m),Vc(),Rs(()=>{T._isLeaving&&(ot(T,h),We(T,_),As(y)||Os(T,r,H,ne))}),st(y,[T,ne])},onEnterCancelled(T){L(T,!1),st(p,[T])},onAppearCancelled(T){L(T,!0),st($,[T])},onLeaveCancelled(T){w(T),st(M,[T])}})}function $c(e){if(e==null)return null;if(Z(e))return[Yn(e.enter),Yn(e.leave)];{const t=Yn(e);return[t,t]}}function Yn(e){return Fi(e)}function We(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ut]||(e[Ut]=new Set)).add(t)}function ot(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ut];n&&(n.delete(t),n.size||(e[Ut]=void 0))}function Rs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Hc=0;function Os(e,t,n,r){const s=e._endId=++Hc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=jc(e,t);if(!i)return r();const a=i+"end";let f=0;const h=()=>{e.removeEventListener(a,m),o()},m=_=>{_.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[C]||"").split(", "),s=r(`${Ke}Delay`),o=r(`${Ke}Duration`),i=Ls(s,o),l=r(`${Tt}Delay`),c=r(`${Tt}Duration`),a=Ls(l,c);let f=null,h=0,m=0;t===Ke?i>0&&(f=Ke,h=i,m=o.length):t===Tt?a>0&&(f=Tt,h=a,m=c.length):(h=Math.max(i,a),f=h>0?i>a?Ke:Tt:null,m=f?f===Ke?o.length:c.length:0);const _=f===Ke&&/\b(transform|all)(,|$)/.test(r(`${Ke}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:_}}function Ls(e,t){for(;e.lengthIs(n)+Is(e[r])))}function Is(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Vc(){return document.body.offsetHeight}function Dc(e,t,n){const r=e[Ut];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ms=Symbol("_vod"),Uc=Symbol("_vsh"),Bc=Symbol(""),kc=/(^|;)\s*display\s*:/;function Kc(e,t,n){const r=e.style,s=oe(n);let o=!1;if(n&&!s){if(t)if(oe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&pn(r,l,"")}else for(const i in t)n[i]==null&&pn(r,i,"");for(const i in n)i==="display"&&(o=!0),pn(r,i,n[i])}else if(s){if(t!==n){const i=r[Bc];i&&(n+=";"+i),r.cssText=n,o=kc.test(n)}}else t&&e.removeAttribute("style");Ms in e&&(e[Ms]=o?r.display:"",e[Uc]&&(r.display="none"))}const Ps=/\s*!important$/;function pn(e,t,n){if(k(n))n.forEach(r=>pn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Wc(e,t);Ps.test(n)?e.setProperty(ft(r),n.replace(Ps,""),"important"):e[r]=n}}const Ns=["Webkit","Moz","ms"],zn={};function Wc(e,t){const n=zn[t];if(n)return n;let r=$e(t);if(r!=="filter"&&r in e)return zn[t]=r;r=An(r);for(let s=0;sJn||(zc.then(()=>Jn=0),Jn=Date.now());function Qc(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Se(Zc(r,n.value),t,5,[r])};return n.value=e,n.attached=Jc(),n}function Zc(e,t){if(k(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Vs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ea=(e,t,n,r,s,o,i,l,c)=>{const a=s==="svg";t==="class"?Dc(e,r,a):t==="style"?Kc(e,n,r):kt(t)?Er(t)||Xc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ta(e,t,r,a))?(qc(e,t,r,o,i,l,c),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&$s(e,t,r,a,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),$s(e,t,r,a))};function ta(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Vs(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Vs(t)&&oe(n)?!1:t in e}const Ds=e=>{const t=e.props["onUpdate:modelValue"]||!1;return k(t)?n=>fn(t,n):t};function na(e){e.target.composing=!0}function Us(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qn=Symbol("_assign"),_u={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Qn]=Ds(s);const o=r||s.props&&s.props.type==="number";gt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=cr(l)),e[Qn](l)}),n&>(e,"change",()=>{e.value=e.value.trim()}),t||(gt(e,"compositionstart",na),gt(e,"compositionend",Us),gt(e,"change",Us))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Qn]=Ds(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?cr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},ra=["ctrl","shift","alt","meta"],sa={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ra.some(n=>e[`${n}Key`]&&!t.includes(n))},vu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=ft(s.key);if(t.some(i=>i===o||oa[i]===o))return e(s)})},ai=le({patchProp:ea},Nc);let Ft,Bs=!1;function ia(){return Ft||(Ft=sc(ai))}function la(){return Ft=Bs?Ft:oc(ai),Bs=!0,Ft}const wu=(...e)=>{const t=ia().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=fi(r);if(!s)return;const o=t._component;!K(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,ui(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Eu=(...e)=>{const t=la().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=fi(r);if(s)return n(s,!0,ui(s))},t};function ui(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function fi(e){return oe(e)?document.querySelector(e):e}const Cu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},ca=window.__VP_SITE_DATA__;function Kr(e){return oo()?(Ki(e),!0):!1}function Fe(e){return typeof e=="function"?e():wo(e)}const di=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const aa=Object.prototype.toString,ua=e=>aa.call(e)==="[object Object]",Bt=()=>{},ks=fa();function fa(){var e,t;return di&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function da(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const hi=e=>e();function ha(e,t={}){let n,r,s=Bt;const o=l=>{clearTimeout(l),s(),s=Bt};return l=>{const c=Fe(e),a=Fe(t.maxWait);return n&&o(n),c<=0||a!==void 0&&a<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,a&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},a)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function pa(e=hi){const t=se(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Ln(t),pause:n,resume:r,eventFilter:s}}function ga(e){return jn()}function pi(...e){if(e.length!==1)return vl(...e);const t=e[0];return typeof t=="function"?Ln(ml(()=>({get:t,set:Bt}))):se(t)}function gi(e,t,n={}){const{eventFilter:r=hi,...s}=n;return Ne(e,da(r,t),s)}function ma(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=pa(r);return{stop:gi(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function Wr(e,t=!0,n){ga()?xt(e,n):t?e():In(e)}function xu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return gi(e,t,{...o,eventFilter:ha(r,{maxWait:s})})}function Su(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=Bt}=r,c=se(!s),a=i?Fr(t):se(t);let f=0;return Br(async h=>{if(!c.value)return;f++;const m=f;let _=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const C=await e(I=>{h(()=>{o&&(o.value=!1),_||I()})});m===f&&(a.value=C)}catch(C){l(C)}finally{o&&m===f&&(o.value=!1),_=!0}}),s?re(()=>(c.value=!0,a.value)):a}function mi(e){var t;const n=Fe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Oe=di?window:void 0;function Ct(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Oe):[t,n,r,s]=e,!t)return Bt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,_)=>(f.addEventListener(h,m,_),()=>f.removeEventListener(h,m,_)),c=Ne(()=>[mi(t),Fe(s)],([f,h])=>{if(i(),!f)return;const m=ua(h)?{...h}:h;o.push(...n.flatMap(_=>r.map(C=>l(f,_,C,m))))},{immediate:!0,flush:"post"}),a=()=>{c(),i()};return Kr(a),a}function ya(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Tu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Oe,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=ya(t);return Ct(s,o,f=>{f.repeat&&Fe(l)||c(f)&&n(f)},i)}function _a(){const e=se(!1),t=jn();return t&&xt(()=>{e.value=!0},t),e}function va(e){const t=_a();return re(()=>(t.value,!!e()))}function yi(e,t={}){const{window:n=Oe}=t,r=va(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=se(!1),i=a=>{o.value=a.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Br(()=>{r.value&&(l(),s=n.matchMedia(Fe(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return Kr(()=>{c(),l(),s=void 0}),o}const ln=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},cn="__vueuse_ssr_handlers__",ba=wa();function wa(){return cn in ln||(ln[cn]=ln[cn]||{}),ln[cn]}function _i(e,t){return ba[e]||t}function Ea(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ca={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ks="vueuse-storage";function qr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:f,window:h=Oe,eventFilter:m,onError:_=w=>{console.error(w)},initOnMounted:C}=r,I=(f?Fr:se)(typeof t=="function"?t():t);if(!n)try{n=_i("getDefaultStorage",()=>{var w;return(w=Oe)==null?void 0:w.localStorage})()}catch(w){_(w)}if(!n)return I;const H=Fe(t),W=Ea(H),D=(s=r.serializer)!=null?s:Ca[W],{pause:p,resume:y}=ma(I,()=>A(I.value),{flush:o,deep:i,eventFilter:m});h&&l&&Wr(()=>{Ct(h,"storage",$),Ct(h,Ks,L),C&&$()}),C||$();function M(w,N){h&&h.dispatchEvent(new CustomEvent(Ks,{detail:{key:e,oldValue:w,newValue:N,storageArea:n}}))}function A(w){try{const N=n.getItem(e);if(w==null)M(N,null),n.removeItem(e);else{const T=D.write(w);N!==T&&(n.setItem(e,T),M(N,T))}}catch(N){_(N)}}function F(w){const N=w?w.newValue:n.getItem(e);if(N==null)return c&&H!=null&&n.setItem(e,D.write(H)),H;if(!w&&a){const T=D.read(N);return typeof a=="function"?a(T,H):W==="object"&&!Array.isArray(T)?{...H,...T}:T}else return typeof N!="string"?N:D.read(N)}function $(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){I.value=H;return}if(!(w&&w.key!==e)){p();try{(w==null?void 0:w.newValue)!==D.write(I.value)&&(I.value=F(w))}catch(N){_(N)}finally{w?In(y):y()}}}}function L(w){$(w.detail)}return I}function vi(e){return yi("(prefers-color-scheme: dark)",e)}function xa(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Oe,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=vi({window:s}),_=re(()=>m.value?"dark":"light"),C=c||(i==null?pi(r):qr(i,r,o,{window:s,listenToStorageChanges:l})),I=re(()=>C.value==="auto"?_.value:C.value),H=_i("updateHTMLAttrs",(y,M,A)=>{const F=typeof y=="string"?s==null?void 0:s.document.querySelector(y):mi(y);if(!F)return;let $;if(f&&($=s.document.createElement("style"),$.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild($)),M==="class"){const L=A.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{L.includes(w)?F.classList.add(w):F.classList.remove(w)})}else F.setAttribute(M,A);f&&(s.getComputedStyle($).opacity,document.head.removeChild($))});function W(y){var M;H(t,n,(M=h[y])!=null?M:y)}function D(y){e.onChanged?e.onChanged(y,W):W(y)}Ne(I,D,{flush:"post",immediate:!0}),Wr(()=>D(I.value));const p=re({get(){return a?C.value:I.value},set(y){C.value=y}});try{return Object.assign(p,{store:C,system:_,state:I})}catch{return p}}function Sa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Oe}=e,s=xa({...e,onChanged:(l,c)=>{var a;e.onChanged?(a=e.onChanged)==null||a.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=re(()=>s.system?s.system.value:vi({window:r}).value?"dark":"light");return re({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Au(e,t,n={}){const{window:r=Oe}=n;return qr(e,t,r==null?void 0:r.localStorage,n)}function bi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const er=new WeakMap;function Ru(e,t=!1){const n=se(t);let r=null,s="";Ne(pi(e),l=>{const c=Zn(Fe(l));if(c){const a=c;if(er.get(a)||er.set(a,a.style.overflow),a.style.overflow!=="hidden"&&(s=a.style.overflow),a.style.overflow==="hidden")return n.value=!0;if(n.value)return a.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Zn(Fe(e));!l||n.value||(ks&&(r=Ct(l,"touchmove",c=>{Ta(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Zn(Fe(e));!l||!n.value||(ks&&(r==null||r()),l.style.overflow=s,er.delete(l),n.value=!1)};return Kr(i),re({get(){return n.value},set(l){l?o():i()}})}function Ou(e,t,n={}){const{window:r=Oe}=n;return qr(e,t,r==null?void 0:r.sessionStorage,n)}function Lu(e={}){const{window:t=Oe,behavior:n="auto"}=e;if(!t)return{x:se(0),y:se(0)};const r=se(t.scrollX),s=se(t.scrollY),o=re({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=re({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return Ct(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Iu(e={}){const{window:t=Oe,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=se(n),l=se(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Wr(c),Ct("resize",c,{passive:!0}),s){const a=yi("(orientation: portrait)");Ne(a,()=>c())}return{width:i,height:l}}var tr={BASE_URL:"/YAXArrays.jl/dev/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},nr={};const wi=/^(?:[a-z]+:|\/\/)/i,Aa="vitepress-theme-appearance",Ra=/#.*$/,Oa=/[?#].*$/,La=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",Ei={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Ia(e,t,n=!1){if(t===void 0)return!1;if(e=Ws(`/${e}`),n)return new RegExp(t).test(e);if(Ws(t)!==e)return!1;const r=t.match(Ra);return r?(he?location.hash:"")===r[0]:!0}function Ws(e){return decodeURI(e).replace(Oa,"").replace(La,"$1")}function Ma(e){return wi.test(e)}function Pa(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!Ma(n)&&Ia(t,`/${n}/`,!0))||"root"}function Na(e,t){var r,s,o,i,l,c,a;const n=Pa(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:xi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function Ci(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Fa(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Fa(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function $a(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function xi(e,t){return[...e.filter(n=>!$a(t,n)),...t]}const Ha=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,ja=/^[a-z]:/i;function qs(e){const t=ja.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ha,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const rr=new Set;function Va(e){if(rr.size===0){const n=typeof process=="object"&&(nr==null?void 0:nr.VITE_EXTRA_EXTENSIONS)||(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>rr.add(r))}const t=e.split(".").pop();return t==null||!rr.has(t.toLowerCase())}function Mu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Da=Symbol(),ut=Fr(ca);function Pu(e){const t=re(()=>Na(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?se(!0):n?Sa({storageKey:Aa,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):se(!1),s=se(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Ne(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:re(()=>t.value.themeConfig),page:re(()=>e.data),frontmatter:re(()=>e.data.frontmatter),params:re(()=>e.data.params),lang:re(()=>t.value.lang),dir:re(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:re(()=>t.value.localeIndex||"root"),title:re(()=>Ci(t.value,e.data)),description:re(()=>e.data.description||t.value.description),isDark:r,hash:re(()=>s.value)}}function Ua(){const e=wt(Da);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Ba(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Gs(e){return wi.test(e)||!e.startsWith("/")?e:Ba(ut.value.base,e)}function ka(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/YAXArrays.jl/dev/";t=qs(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${qs(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let gn=[];function Nu(e){gn.push(e),$n(()=>{gn=gn.filter(t=>t!==e)})}function Ka(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Xs(e,n);else if(Array.isArray(e))for(const r of e){const s=Xs(r,n);if(s){t=s;break}}return t}function Xs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Wa=Symbol(),Si="http://a.com",qa=()=>({path:"/",component:null,data:Ei});function Fu(e,t){const n=On(qa()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,a;l=sr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==sr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((a=r.onAfterRouteChanged)==null?void 0:a.call(r,l)))}let o=null;async function i(l,c=0,a=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,Si),h=o=f.pathname;try{let _=await e(h);if(!_)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:C,__pageData:I}=_;if(!C)throw new Error(`Invalid route component: ${C}`);n.path=he?h:Gs(h),n.component=dn(C),n.data=dn(I),he&&In(()=>{let H=ut.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!H.endsWith("/")&&(H+=".html"),H!==f.pathname&&(f.pathname=H,l=H+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(D){console.warn(D)}if(W){Ys(W,f.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!a)try{const C=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await C.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Gs(h),n.component=t?dn(t):null;const C=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Ei,relativePath:C}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:f}=a,{href:h,origin:m,pathname:_,hash:C,search:I}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),H=new URL(location.href);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!f&&m===H.origin&&Va(_)&&(l.preventDefault(),_===H.pathname&&I===H.search?(C!==H.hash&&(history.pushState({},"",h),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:H.href,newURL:h}))),C?Ys(a,C,a.classList.contains("header-anchor")):window.scrollTo(0,0)):s(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(sr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ga(){const e=wt(Wa);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ti(){return Ga().route}function Ys(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-Ka()+o;requestAnimationFrame(s)}}function sr(e){const t=new URL(e,Si);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const or=()=>gn.forEach(e=>e()),$u=jr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ti(),{site:n}=Ua();return()=>br(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?br(t.component,{onVnodeMounted:or,onVnodeUpdated:or,onVnodeUnmounted:or}):"404 Page Not Found"])}}),Xa="modulepreload",Ya=function(e){return"/YAXArrays.jl/dev/"+e},zs={},Hu=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=Ya(l),l in zs)return;zs[l]=!0;const c=l.endsWith(".css"),a=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${a}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":Xa,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},ju=jr({setup(e,{slots:t}){const n=se(!1);return xt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Vu(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(a=>a.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Du(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let a=c.textContent||"";i&&(a=a.replace(/^ *(\$|>) /gm,"").trim()),za(a).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function za(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function Uu(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=ir(l);for(const a of document.head.children)if(a.isEqualNode(c)){r.push(a);return}});return}const i=o.map(ir);r.forEach((l,c)=>{const a=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));a!==-1?delete i[a]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};Br(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],a=Ci(i,o);a!==document.title&&(document.title=a);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ir(["meta",{name:"description",content:f}]),s(xi(i.head,Qa(c)))})}function ir([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Ja(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Qa(e){return e.filter(t=>!Ja(t))}const lr=new Set,Ai=()=>document.createElement("link"),Za=e=>{const t=Ai();t.rel="prefetch",t.href=e,document.head.appendChild(t)},eu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let an;const tu=he&&(an=Ai())&&an.relList&&an.relList.supports&&an.relList.supports("prefetch")?Za:eu;function Bu(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!lr.has(c)){lr.add(c);const a=ka(c);a&&tu(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):lr.add(l))})})};xt(r);const s=Ti();Ne(()=>s.path,r),$n(()=>{n&&n.disconnect()})}export{fu as $,hu as A,Fl as B,Ka as C,ou as D,cu as E,_e as F,Fr as G,Nu as H,ie as I,iu as J,wi as K,Ti as L,Ec as M,wt as N,Iu as O,Sr as P,Tu as Q,In as R,Lu as S,li as T,he as U,Ln as V,au as W,Hu as X,Ru as Y,Yl as Z,Cu as _,ri as a,bu as a0,vu as a1,du as a2,mu as a3,On as a4,vl as a5,br as a6,Uu as a7,Wa as a8,Pu as a9,Da as aa,$u as ab,ju as ac,ut as ad,Eu as ae,Fu as af,ka as ag,Bu as ah,Du as ai,Vu as aj,mi as ak,Kr as al,Su as am,Ou as an,Au as ao,xu as ap,Ga as aq,Ct as ar,Lo as as,lu as at,_u as au,de as av,pu as aw,dn as ax,wu as ay,Mu as az,ei as b,gu as c,jr as d,yu as e,Va as f,Gs as g,re as h,Ma as i,ni as j,wo as k,su as l,Ia as m,Tr as n,Qo as o,ru as p,yi as q,uu as r,se as s,nu as t,Ua as u,Ne as v,Al as w,Br as x,xt as y,$n as z}; diff --git a/dev/assets/chunks/theme.C0huFlU1.js b/dev/assets/chunks/theme.BRL7lqyv.js similarity index 99% rename from dev/assets/chunks/theme.C0huFlU1.js rename to dev/assets/chunks/theme.BRL7lqyv.js index 3464c35f..d3d6f615 100644 --- a/dev/assets/chunks/theme.C0huFlU1.js +++ b/dev/assets/chunks/theme.BRL7lqyv.js @@ -1,2 +1,2 @@ -const __vite__fileDeps=["assets/chunks/VPLocalSearchBox.B3AM5EmK.js","assets/chunks/framework.BjKsQEKQ.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); -import{d as m,o,c as l,r as c,n as T,a as H,t as V,b as A,w as v,e as f,T as he,_ as g,u as Ze,i as Ye,f as Xe,g as fe,h as $,j as d,k as i,p as B,l as E,m as K,q as ce,s as N,v as W,x as ee,y as J,z as me,A as Ve,B as qe,C as xe,D as G,F as C,E as Q,G as Ie,H as te,I as _,J as z,K as Ne,L as se,M as X,N as R,O as et,P as Te,Q as ue,R as Ce,S as we,U as ae,V as tt,W as st,X as at,Y as Me,Z as _e,$ as nt,a0 as ot,a1 as rt,a2 as Be,a3 as it,a4 as lt,a5 as ct,a6 as ye}from"./framework.BjKsQEKQ.js";const ut=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(o(),l("span",{class:T(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[H(V(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},pt=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(o(),A(he,{name:"fade"},{default:v(()=>[e.show?(o(),l("div",dt)):f("",!0)]),_:1}))}}),vt=g(pt,[["__scopeId","data-v-b06cdb19"]]),L=Ze;function ht(s,e){let t,a=!1;return()=>{t&&clearTimeout(t),a?t=setTimeout(s,e):(s(),(a=!0)&&setTimeout(()=>a=!1,e))}}function de(s){return/^\//.test(s)?s:`/${s}`}function be(s){const{pathname:e,search:t,hash:a,protocol:n}=new URL(s,"http://a.com");if(Ye(s)||s.startsWith("#")||!n.startsWith("http")||!Xe(e))return s;const{site:r}=L(),u=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${a}`);return fe(u)}function Y({correspondingLink:s=!1}={}){const{site:e,localeIndex:t,page:a,theme:n,hash:r}=L(),u=$(()=>{var p,b;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((b=e.value.locales[t.value])==null?void 0:b.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:$(()=>Object.entries(e.value.locales).flatMap(([p,b])=>u.value.label===b.label?[]:{text:b.label,link:ft(b.link||(p==="root"?"/":`/${p}/`),n.value.i18nRouting!==!1&&s,a.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:u}}function ft(s,e,t,a){return e?s.replace(/\/$/,"")+de(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,a?".html":"")):s}const mt=s=>(B("data-v-951cab6c"),s=s(),E(),s),_t={class:"NotFound"},bt={class:"code"},gt={class:"title"},kt=mt(()=>d("div",{class:"divider"},null,-1)),$t={class:"quote"},At={class:"action"},yt=["href","aria-label"],Pt=m({__name:"NotFound",setup(s){const{theme:e}=L(),{currentLang:t}=Y();return(a,n)=>{var r,u,h,p,b;return o(),l("div",_t,[d("p",bt,V(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),d("h1",gt,V(((u=i(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),kt,d("blockquote",$t,V(((h=i(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",At,[d("a",{class:"link",href:i(fe)(i(t).link),"aria-label":((p=i(e).notFound)==null?void 0:p.linkLabel)??"go to home"},V(((b=i(e).notFound)==null?void 0:b.linkText)??"Take me home"),9,yt)])])}}}),St=g(Pt,[["__scopeId","data-v-951cab6c"]]);function Ee(s,e){if(Array.isArray(s))return q(s);if(s==null)return[];e=de(e);const t=Object.keys(s).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(de(n))),a=t?s[t]:[];return Array.isArray(a)?q(a):q(a.items,a.base)}function Lt(s){const e=[];let t=0;for(const a in s){const n=s[a];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function Vt(s){const e=[];function t(a){for(const n of a)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(s),e}function pe(s,e){return Array.isArray(e)?e.some(t=>pe(s,t)):K(s,e.link)?!0:e.items?pe(s,e.items):!1}function q(s,e){return[...s].map(t=>{const a={...t},n=a.base||e;return n&&a.link&&(a.link=n+a.link),a.items&&(a.items=q(a.items,n)),a})}function D(){const{frontmatter:s,page:e,theme:t}=L(),a=ce("(min-width: 960px)"),n=N(!1),r=$(()=>{const M=t.value.sidebar,I=e.value.relativePath;return M?Ee(M,I):[]}),u=N(r.value);W(r,(M,I)=>{JSON.stringify(M)!==JSON.stringify(I)&&(u.value=r.value)});const h=$(()=>s.value.sidebar!==!1&&u.value.length>0&&s.value.layout!=="home"),p=$(()=>b?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),b=$(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),S=$(()=>h.value&&a.value),k=$(()=>h.value?Lt(u.value):[]);function y(){n.value=!0}function P(){n.value=!1}function w(){n.value?P():y()}return{isOpen:n,sidebar:u,sidebarGroups:k,hasSidebar:h,hasAside:b,leftAside:p,isSidebarEnabled:S,open:y,close:P,toggle:w}}function It(s,e){let t;ee(()=>{t=s.value?document.activeElement:void 0}),J(()=>{window.addEventListener("keyup",a)}),me(()=>{window.removeEventListener("keyup",a)});function a(n){n.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function Nt(s){const{page:e,hash:t}=L(),a=N(!1),n=$(()=>s.value.collapsed!=null),r=$(()=>!!s.value.link),u=N(!1),h=()=>{u.value=K(e.value.relativePath,s.value.link)};W([e,s,t],h),J(h);const p=$(()=>u.value?!0:s.value.items?pe(e.value.relativePath,s.value.items):!1),b=$(()=>!!(s.value.items&&s.value.items.length));ee(()=>{a.value=!!(n.value&&s.value.collapsed)}),Ve(()=>{(u.value||p.value)&&(a.value=!1)});function S(){n.value&&(a.value=!a.value)}return{collapsed:a,collapsible:n,isLink:r,isActiveLink:u,hasActiveLink:p,hasChildren:b,toggle:S}}function Tt(){const{hasSidebar:s}=D(),e=ce("(min-width: 960px)"),t=ce("(min-width: 1280px)");return{isAsideEnabled:$(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const ve=[];function Qe(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function ge(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const a=Number(t.tagName[1]);return{element:t,title:Ct(t),link:"#"+t.id,level:a}});return wt(e,s)}function Ct(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function wt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[a,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(u=>u.level>=a&&u.level<=n),ve.length=0;for(const{element:u,link:h}of s)ve.push({element:u,link:h});const r=[];e:for(let u=0;u=0;p--){const b=s[p];if(b.level{requestAnimationFrame(r),window.addEventListener("scroll",a)}),qe(()=>{u(location.hash)}),me(()=>{window.removeEventListener("scroll",a)});function r(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,b=document.body.offsetHeight,S=Math.abs(h+p-b)<1,k=ve.map(({element:P,link:w})=>({link:w,top:Bt(P)})).filter(({top:P})=>!Number.isNaN(P)).sort((P,w)=>P.top-w.top);if(!k.length){u(null);return}if(h<1){u(null);return}if(S){u(k[k.length-1].link);return}let y=null;for(const{link:P,top:w}of k){if(w>h+xe()+4)break;y=P}u(y)}function u(h){n&&n.classList.remove("active"),h==null?n=null:n=s.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}const Et=["href","title"],Qt=m({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function e({target:t}){const a=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(a));n==null||n.focus({preventScroll:!0})}return(t,a)=>{const n=G("VPDocOutlineItem",!0);return o(),l("ul",{class:T(["VPDocOutlineItem",t.root?"root":"nested"])},[(o(!0),l(C,null,Q(t.headers,({children:r,link:u,title:h})=>(o(),l("li",null,[d("a",{class:"outline-link",href:u,onClick:e,title:h},V(h),9,Et),r!=null&&r.length?(o(),A(n,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Fe=g(Qt,[["__scopeId","data-v-3f927ebe"]]),Ft={class:"content"},Ht={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Wt=m({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=L(),a=Ie([]);te(()=>{a.value=ge(e.value.outline??t.value.outline)});const n=N(),r=N();return Mt(n,r),(u,h)=>(o(),l("nav",{"aria-labelledby":"doc-outline-aria-label",class:T(["VPDocAsideOutline",{"has-outline":a.value.length>0}]),ref_key:"container",ref:n},[d("div",Ft,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",Ht,V(i(Qe)(i(t))),1),_(Fe,{headers:a.value,root:!0},null,8,["headers"])])],2))}}),Dt=g(Wt,[["__scopeId","data-v-b38bf2ff"]]),Ut={class:"VPDocAsideCarbonAds"},Ot=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,a)=>(o(),l("div",Ut,[_(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Gt=s=>(B("data-v-6d7b3c46"),s=s(),E(),s),Kt={class:"VPDocAside"},Jt=Gt(()=>d("div",{class:"spacer"},null,-1)),jt=m({__name:"VPDocAside",setup(s){const{theme:e}=L();return(t,a)=>(o(),l("div",Kt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),_(Dt),c(t.$slots,"aside-outline-after",{},void 0,!0),Jt,c(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(o(),A(Ot,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):f("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),zt=g(jt,[["__scopeId","data-v-6d7b3c46"]]);function Rt(){const{theme:s,page:e}=L();return $(()=>{const{text:t="Edit this page",pattern:a=""}=s.value.editLink||{};let n;return typeof a=="function"?n=a(e.value):n=a.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Zt(){const{page:s,theme:e,frontmatter:t}=L();return $(()=>{var b,S,k,y,P,w,M,I;const a=Ee(e.value.sidebar,s.value.relativePath),n=Vt(a),r=Yt(n,U=>U.link.replace(/[?#].*$/,"")),u=r.findIndex(U=>K(s.value.relativePath,U.link)),h=((b=e.value.docFooter)==null?void 0:b.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((S=e.value.docFooter)==null?void 0:S.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((k=r[u-1])==null?void 0:k.docFooterText)??((y=r[u-1])==null?void 0:y.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((P=r[u-1])==null?void 0:P.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((w=r[u+1])==null?void 0:w.docFooterText)??((M=r[u+1])==null?void 0:M.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((I=r[u+1])==null?void 0:I.link)}}})}function Yt(s,e){const t=new Set;return s.filter(a=>{const n=e(a);return t.has(n)?!1:t.add(n)})}const F=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.tag??(e.href?"a":"span")),a=$(()=>e.href&&Ne.test(e.href)||e.target==="_blank");return(n,r)=>(o(),A(z(t.value),{class:T(["VPLink",{link:n.href,"vp-external-link-icon":a.value,"no-icon":n.noIcon}]),href:n.href?i(be)(n.href):void 0,target:n.target??(a.value?"_blank":void 0),rel:n.rel??(a.value?"noreferrer":void 0)},{default:v(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Xt={class:"VPLastUpdated"},qt=["datetime"],xt=m({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:a,lang:n}=L(),r=$(()=>new Date(a.value.lastUpdated??t.value.lastUpdated)),u=$(()=>r.value.toISOString()),h=N("");return J(()=>{ee(()=>{var p,b,S;h.value=new Intl.DateTimeFormat((b=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&b.forceLocale?n.value:void 0,((S=e.value.lastUpdated)==null?void 0:S.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(p,b)=>{var S;return o(),l("p",Xt,[H(V(((S=i(e).lastUpdated)==null?void 0:S.text)||i(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:u.value},V(h.value),9,qt)])}}}),es=g(xt,[["__scopeId","data-v-9da12f1d"]]),He=s=>(B("data-v-b88cabfa"),s=s(),E(),s),ts={key:0,class:"VPDocFooter"},ss={key:0,class:"edit-info"},as={key:0,class:"edit-link"},ns=He(()=>d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),os={key:1,class:"last-updated"},rs={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},is=He(()=>d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),ls={class:"pager"},cs=["innerHTML"],us=["innerHTML"],ds={class:"pager"},ps=["innerHTML"],vs=["innerHTML"],hs=m({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:a}=L(),n=Rt(),r=Zt(),u=$(()=>e.value.editLink&&a.value.editLink!==!1),h=$(()=>t.value.lastUpdated&&a.value.lastUpdated!==!1),p=$(()=>u.value||h.value||r.value.prev||r.value.next);return(b,S)=>{var k,y,P,w;return p.value?(o(),l("footer",ts,[c(b.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(o(),l("div",ss,[u.value?(o(),l("div",as,[_(F,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:v(()=>[ns,H(" "+V(i(n).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(o(),l("div",os,[_(es)])):f("",!0)])):f("",!0),(k=i(r).prev)!=null&&k.link||(y=i(r).next)!=null&&y.link?(o(),l("nav",rs,[is,d("div",ls,[(P=i(r).prev)!=null&&P.link?(o(),A(F,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:v(()=>{var M;return[d("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.prev)||"Previous page"},null,8,cs),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,us)]}),_:1},8,["href"])):f("",!0)]),d("div",ds,[(w=i(r).next)!=null&&w.link?(o(),A(F,{key:0,class:"pager-link next",href:i(r).next.link},{default:v(()=>{var M;return[d("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.next)||"Next page"},null,8,ps),d("span",{class:"title",innerHTML:i(r).next.text},null,8,vs)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),fs=g(hs,[["__scopeId","data-v-b88cabfa"]]),ms=s=>(B("data-v-83890dd9"),s=s(),E(),s),_s={class:"container"},bs=ms(()=>d("div",{class:"aside-curtain"},null,-1)),gs={class:"aside-container"},ks={class:"aside-content"},$s={class:"content"},As={class:"content-container"},ys={class:"main"},Ps=m({__name:"VPDoc",setup(s){const{theme:e}=L(),t=se(),{hasSidebar:a,hasAside:n,leftAside:r}=D(),u=$(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const b=G("Content");return o(),l("div",{class:T(["VPDoc",{"has-sidebar":i(a),"has-aside":i(n)}])},[c(h.$slots,"doc-top",{},void 0,!0),d("div",_s,[i(n)?(o(),l("div",{key:0,class:T(["aside",{"left-aside":i(r)}])},[bs,d("div",gs,[d("div",ks,[_(zt,null,{"aside-top":v(()=>[c(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),d("div",$s,[d("div",As,[c(h.$slots,"doc-before",{},void 0,!0),d("main",ys,[_(b,{class:T(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),_(fs,null,{"doc-footer-before":v(()=>[c(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(h.$slots,"doc-after",{},void 0,!0)])])]),c(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Ss=g(Ps,[["__scopeId","data-v-83890dd9"]]),Ls=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.href&&Ne.test(e.href)),a=$(()=>e.tag||e.href?"a":"button");return(n,r)=>(o(),A(z(a.value),{class:T(["VPButton",[n.size,n.theme]]),href:n.href?i(be)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[H(V(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),Vs=g(Ls,[["__scopeId","data-v-14206e74"]]),Is=["src","alt"],Ns=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const a=G("VPImage",!0);return e.image?(o(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(o(),l("img",X({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Is)):(o(),l(C,{key:1},[_(a,X({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),_(a,X({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),x=g(Ns,[["__scopeId","data-v-35a7d0b8"]]),Ts=s=>(B("data-v-955009fc"),s=s(),E(),s),Cs={class:"container"},ws={class:"main"},Ms={key:0,class:"name"},Bs=["innerHTML"],Es=["innerHTML"],Qs=["innerHTML"],Fs={key:0,class:"actions"},Hs={key:0,class:"image"},Ws={class:"image-container"},Ds=Ts(()=>d("div",{class:"image-bg"},null,-1)),Us=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=R("hero-image-slot-exists");return(t,a)=>(o(),l("div",{class:T(["VPHero",{"has-image":t.image||i(e)}])},[d("div",Cs,[d("div",ws,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(o(),l("h1",Ms,[d("span",{innerHTML:t.name,class:"clip"},null,8,Bs)])):f("",!0),t.text?(o(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Es)):f("",!0),t.tagline?(o(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Qs)):f("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(o(),l("div",Fs,[(o(!0),l(C,null,Q(t.actions,n=>(o(),l("div",{key:n.link,class:"action"},[_(Vs,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(o(),l("div",Hs,[d("div",Ws,[Ds,c(t.$slots,"home-hero-image",{},()=>[t.image?(o(),A(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Os=g(Us,[["__scopeId","data-v-955009fc"]]),Gs=m({__name:"VPHomeHero",setup(s){const{frontmatter:e}=L();return(t,a)=>i(e).hero?(o(),A(Os,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":v(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ks=s=>(B("data-v-f5e9645b"),s=s(),E(),s),Js={class:"box"},js={key:0,class:"icon"},zs=["innerHTML"],Rs=["innerHTML"],Zs=["innerHTML"],Ys={key:4,class:"link-text"},Xs={class:"link-text-value"},qs=Ks(()=>d("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),xs=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(o(),A(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[d("article",Js,[typeof e.icon=="object"&&e.icon.wrap?(o(),l("div",js,[_(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(o(),A(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(o(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,zs)):f("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Rs),e.details?(o(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Zs)):f("",!0),e.linkText?(o(),l("div",Ys,[d("p",Xs,[H(V(e.linkText)+" ",1),qs])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),ea=g(xs,[["__scopeId","data-v-f5e9645b"]]),ta={key:0,class:"VPFeatures"},sa={class:"container"},aa={class:"items"},na=m({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=$(()=>{const a=e.features.length;if(a){if(a===2)return"grid-2";if(a===3)return"grid-3";if(a%3===0)return"grid-6";if(a>3)return"grid-4"}else return});return(a,n)=>a.features?(o(),l("div",ta,[d("div",sa,[d("div",aa,[(o(!0),l(C,null,Q(a.features,r=>(o(),l("div",{key:r.title,class:T(["item",[t.value]])},[_(ea,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),oa=g(na,[["__scopeId","data-v-d0a190d7"]]),ra=m({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=L();return(t,a)=>i(e).features?(o(),A(oa,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):f("",!0)}}),ia=m({__name:"VPHomeContent",setup(s){const{width:e}=et({initialWidth:0,includeScrollbar:!1});return(t,a)=>(o(),l("div",{class:"vp-doc container",style:Te(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),la=g(ia,[["__scopeId","data-v-7a48a447"]]),ca={class:"VPHome"},ua=m({__name:"VPHome",setup(s){const{frontmatter:e}=L();return(t,a)=>{const n=G("Content");return o(),l("div",ca,[c(t.$slots,"home-hero-before",{},void 0,!0),_(Gs,null,{"home-hero-info-before":v(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),_(ra),c(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(o(),A(la,{key:0},{default:v(()=>[_(n)]),_:1})):(o(),A(n,{key:1}))])}}}),da=g(ua,[["__scopeId","data-v-cbb6ec48"]]),pa={},va={class:"VPPage"};function ha(s,e){const t=G("Content");return o(),l("div",va,[c(s.$slots,"page-top"),_(t),c(s.$slots,"page-bottom")])}const fa=g(pa,[["render",ha]]),ma=m({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=L(),{hasSidebar:a}=D();return(n,r)=>(o(),l("div",{class:T(["VPContent",{"has-sidebar":i(a),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[_(St)],!0):i(t).layout==="page"?(o(),A(fa,{key:1},{"page-top":v(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(o(),A(da,{key:2},{"home-hero-before":v(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(o(),A(z(i(t).layout),{key:3})):(o(),A(Ss,{key:4},{"doc-top":v(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),_a=g(ma,[["__scopeId","data-v-91765379"]]),ba={class:"container"},ga=["innerHTML"],ka=["innerHTML"],$a=m({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:a}=D();return(n,r)=>i(e).footer&&i(t).footer!==!1?(o(),l("footer",{key:0,class:T(["VPFooter",{"has-sidebar":i(a)}])},[d("div",ba,[i(e).footer.message?(o(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,ga)):f("",!0),i(e).footer.copyright?(o(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,ka)):f("",!0)])],2)):f("",!0)}}),Aa=g($a,[["__scopeId","data-v-c970a860"]]);function ya(){const{theme:s,frontmatter:e}=L(),t=Ie([]),a=$(()=>t.value.length>0);return te(()=>{t.value=ge(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:a}}const Pa=s=>(B("data-v-bc9dc845"),s=s(),E(),s),Sa={class:"menu-text"},La=Pa(()=>d("span",{class:"vpi-chevron-right icon"},null,-1)),Va={class:"header"},Ia={class:"outline"},Na=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=L(),a=N(!1),n=N(0),r=N(),u=N();function h(k){var y;(y=r.value)!=null&&y.contains(k.target)||(a.value=!1)}W(a,k=>{if(k){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),ue("Escape",()=>{a.value=!1}),te(()=>{a.value=!1});function p(){a.value=!a.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function b(k){k.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Ce(()=>{a.value=!1}))}function S(){a.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(k,y)=>(o(),l("div",{class:"VPLocalNavOutlineDropdown",style:Te({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[k.headers.length>0?(o(),l("button",{key:0,onClick:p,class:T({open:a.value})},[d("span",Sa,V(i(Qe)(i(t))),1),La],2)):(o(),l("button",{key:1,onClick:S},V(i(t).returnToTopLabel||"Return to top"),1)),_(he,{name:"flyout"},{default:v(()=>[a.value?(o(),l("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:b},[d("div",Va,[d("a",{class:"top-link",href:"#",onClick:S},V(i(t).returnToTopLabel||"Return to top"),1)]),d("div",Ia,[_(Fe,{headers:k.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Ta=g(Na,[["__scopeId","data-v-bc9dc845"]]),Ca=s=>(B("data-v-070ab83d"),s=s(),E(),s),wa={class:"container"},Ma=["aria-expanded"],Ba=Ca(()=>d("span",{class:"vpi-align-left menu-icon"},null,-1)),Ea={class:"menu-text"},Qa=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:a}=D(),{headers:n}=ya(),{y:r}=we(),u=N(0);J(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{n.value=ge(t.value.outline??e.value.outline)});const h=$(()=>n.value.length===0),p=$(()=>h.value&&!a.value),b=$(()=>({VPLocalNav:!0,"has-sidebar":a.value,empty:h.value,fixed:p.value}));return(S,k)=>i(t).layout!=="home"&&(!p.value||i(r)>=u.value)?(o(),l("div",{key:0,class:T(b.value)},[d("div",wa,[i(a)?(o(),l("button",{key:0,class:"menu","aria-expanded":S.open,"aria-controls":"VPSidebarNav",onClick:k[0]||(k[0]=y=>S.$emit("open-menu"))},[Ba,d("span",Ea,V(i(e).sidebarMenuLabel||"Menu"),1)],8,Ma)):f("",!0),_(Ta,{headers:i(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Fa=g(Qa,[["__scopeId","data-v-070ab83d"]]);function Ha(){const s=N(!1);function e(){s.value=!0,window.addEventListener("resize",n)}function t(){s.value=!1,window.removeEventListener("resize",n)}function a(){s.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=se();return W(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:a}}const Wa={},Da={class:"VPSwitch",type:"button",role:"switch"},Ua={class:"check"},Oa={key:0,class:"icon"};function Ga(s,e){return o(),l("button",Da,[d("span",Ua,[s.$slots.default?(o(),l("span",Oa,[c(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Ka=g(Wa,[["render",Ga],["__scopeId","data-v-4a1c76db"]]),We=s=>(B("data-v-b79b56d4"),s=s(),E(),s),Ja=We(()=>d("span",{class:"vpi-sun sun"},null,-1)),ja=We(()=>d("span",{class:"vpi-moon moon"},null,-1)),za=m({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=L(),a=R("toggle-appearance",()=>{e.value=!e.value}),n=$(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(r,u)=>(o(),A(Ka,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(a)},{default:v(()=>[Ja,ja]),_:1},8,["title","aria-checked","onClick"]))}}),ke=g(za,[["__scopeId","data-v-b79b56d4"]]),Ra={key:0,class:"VPNavBarAppearance"},Za=m({__name:"VPNavBarAppearance",setup(s){const{site:e}=L();return(t,a)=>i(e).appearance&&i(e).appearance!=="force-dark"?(o(),l("div",Ra,[_(ke)])):f("",!0)}}),Ya=g(Za,[["__scopeId","data-v-ead91a81"]]),$e=N();let De=!1,le=0;function Xa(s){const e=N(!1);if(ae){!De&&qa(),le++;const t=W($e,a=>{var n,r,u;a===s.el.value||(n=s.el.value)!=null&&n.contains(a)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(u=s.onBlur)==null||u.call(s))});me(()=>{t(),le--,le||xa()})}return tt(e)}function qa(){document.addEventListener("focusin",Ue),De=!0,$e.value=document.activeElement}function xa(){document.removeEventListener("focusin",Ue)}function Ue(){$e.value=document.activeElement}const en={class:"VPMenuLink"},tn=m({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,a)=>(o(),l("div",en,[_(F,{class:T({active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[H(V(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=g(tn,[["__scopeId","data-v-8b74d055"]]),sn={class:"VPMenuGroup"},an={key:0,class:"title"},nn=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(o(),l("div",sn,[e.text?(o(),l("p",an,V(e.text),1)):f("",!0),(o(!0),l(C,null,Q(e.items,a=>(o(),l(C,null,["link"in a?(o(),A(ne,{key:0,item:a},null,8,["item"])):f("",!0)],64))),256))]))}}),on=g(nn,[["__scopeId","data-v-48c802d0"]]),rn={class:"VPMenu"},ln={key:0,class:"items"},cn=m({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(o(),l("div",rn,[e.items?(o(),l("div",ln,[(o(!0),l(C,null,Q(e.items,a=>(o(),l(C,{key:a.text},["link"in a?(o(),A(ne,{key:0,item:a},null,8,["item"])):(o(),A(on,{key:1,text:a.text,items:a.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),un=g(cn,[["__scopeId","data-v-97491713"]]),dn=s=>(B("data-v-e5380155"),s=s(),E(),s),pn=["aria-expanded","aria-label"],vn={key:0,class:"text"},hn=["innerHTML"],fn=dn(()=>d("span",{class:"vpi-chevron-down text-icon"},null,-1)),mn={key:1,class:"vpi-more-horizontal icon"},_n={class:"menu"},bn=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=N(!1),t=N();Xa({el:t,onBlur:a});function a(){e.value=!1}return(n,r)=>(o(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[n.button||n.icon?(o(),l("span",vn,[n.icon?(o(),l("span",{key:0,class:T([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(o(),l("span",{key:1,innerHTML:n.button},null,8,hn)):f("",!0),fn])):(o(),l("span",mn))],8,pn),d("div",_n,[_(un,{items:n.items},{default:v(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),Ae=g(bn,[["__scopeId","data-v-e5380155"]]),gn=["href","aria-label","innerHTML"],kn=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=$(()=>typeof e.icon=="object"?e.icon.svg:``);return(a,n)=>(o(),l("a",{class:"VPSocialLink no-icon",href:a.link,"aria-label":a.ariaLabel??(typeof a.icon=="string"?a.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,gn))}}),$n=g(kn,[["__scopeId","data-v-717b8b75"]]),An={class:"VPSocialLinks"},yn=m({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(o(),l("div",An,[(o(!0),l(C,null,Q(e.links,({link:a,icon:n,ariaLabel:r})=>(o(),A($n,{key:a,icon:n,link:a,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),oe=g(yn,[["__scopeId","data-v-ee7a9424"]]),Pn={key:0,class:"group translations"},Sn={class:"trans-title"},Ln={key:1,class:"group"},Vn={class:"item appearance"},In={class:"label"},Nn={class:"appearance-action"},Tn={key:2,class:"group"},Cn={class:"item social-links"},wn=m({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=L(),{localeLinks:a,currentLang:n}=Y({correspondingLink:!0}),r=$(()=>a.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>r.value?(o(),A(Ae,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(a).length&&i(n).label?(o(),l("div",Pn,[d("p",Sn,V(i(n).label),1),(o(!0),l(C,null,Q(i(a),p=>(o(),A(ne,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),i(e).appearance&&i(e).appearance!=="force-dark"?(o(),l("div",Ln,[d("div",Vn,[d("p",In,V(i(t).darkModeSwitchLabel||"Appearance"),1),d("div",Nn,[_(ke)])])])):f("",!0),i(t).socialLinks?(o(),l("div",Tn,[d("div",Cn,[_(oe,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Mn=g(wn,[["__scopeId","data-v-9b536d0b"]]),Bn=s=>(B("data-v-5dea55bf"),s=s(),E(),s),En=["aria-expanded"],Qn=Bn(()=>d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)),Fn=[Qn],Hn=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(o(),l("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=a=>e.$emit("click"))},Fn,10,En))}}),Wn=g(Hn,[["__scopeId","data-v-5dea55bf"]]),Dn=["innerHTML"],Un=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,a)=>(o(),A(F,{class:T({VPNavBarMenuLink:!0,active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[d("span",{innerHTML:t.item.text},null,8,Dn)]),_:1},8,["class","href","noIcon","target","rel"]))}}),On=g(Un,[["__scopeId","data-v-ed5ac1f6"]]),Gn=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=L(),a=r=>"link"in r?K(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(a),n=$(()=>a(e.item));return(r,u)=>(o(),A(Ae,{class:T({VPNavBarMenuGroup:!0,active:i(K)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Kn=s=>(B("data-v-492ea56d"),s=s(),E(),s),Jn={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},jn=Kn(()=>d("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),zn=m({__name:"VPNavBarMenu",setup(s){const{theme:e}=L();return(t,a)=>i(e).nav?(o(),l("nav",Jn,[jn,(o(!0),l(C,null,Q(i(e).nav,n=>(o(),l(C,{key:n.text},["link"in n?(o(),A(On,{key:0,item:n},null,8,["item"])):(o(),A(Gn,{key:1,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),Rn=g(zn,[["__scopeId","data-v-492ea56d"]]);function Zn(s){const{localeIndex:e,theme:t}=L();function a(n){var w,M,I;const r=n.split("."),u=(w=t.value.search)==null?void 0:w.options,h=u&&typeof u=="object",p=h&&((I=(M=u.locales)==null?void 0:M[e.value])==null?void 0:I.translations)||null,b=h&&u.translations||null;let S=p,k=b,y=s;const P=r.pop();for(const U of r){let O=null;const j=y==null?void 0:y[U];j&&(O=y=j);const re=k==null?void 0:k[U];re&&(O=k=re);const ie=S==null?void 0:S[U];ie&&(O=S=ie),j||(y=O),re||(k=O),ie||(S=O)}return(S==null?void 0:S[P])??(k==null?void 0:k[P])??(y==null?void 0:y[P])??""}return a}const Yn=["aria-label"],Xn={class:"DocSearch-Button-Container"},qn=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),xn={class:"DocSearch-Button-Placeholder"},eo=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Pe=m({__name:"VPNavBarSearchButton",setup(s){const t=Zn({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(a,n)=>(o(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[d("span",Xn,[qn,d("span",xn,V(i(t)("button.buttonText")),1)]),eo],8,Yn))}}),to={class:"VPNavBarSearch"},so={id:"local-search"},ao={key:1,id:"docsearch"},no=m({__name:"VPNavBarSearch",setup(s){const e=st(()=>at(()=>import("./VPLocalSearchBox.B3AM5EmK.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:a}=L(),n=N(!1),r=N(!1);J(()=>{});function u(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const k=new Event("keydown");k.key="k",k.metaKey=!0,window.dispatchEvent(k),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p(k){const y=k.target,P=y.tagName;return y.isContentEditable||P==="INPUT"||P==="SELECT"||P==="TEXTAREA"}const b=N(!1);ue("k",k=>{(k.ctrlKey||k.metaKey)&&(k.preventDefault(),b.value=!0)}),ue("/",k=>{p(k)||(k.preventDefault(),b.value=!0)});const S="local";return(k,y)=>{var P;return o(),l("div",to,[i(S)==="local"?(o(),l(C,{key:0},[b.value?(o(),A(i(e),{key:0,onClose:y[0]||(y[0]=w=>b.value=!1)})):f("",!0),d("div",so,[_(Pe,{onClick:y[1]||(y[1]=w=>b.value=!0)})])],64)):i(S)==="algolia"?(o(),l(C,{key:1},[n.value?(o(),A(i(t),{key:0,algolia:((P=i(a).search)==null?void 0:P.options)??i(a).algolia,onVnodeBeforeMount:y[2]||(y[2]=w=>r.value=!0)},null,8,["algolia"])):f("",!0),r.value?f("",!0):(o(),l("div",ao,[_(Pe,{onClick:u})]))],64)):f("",!0)])}}}),oo=m({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=L();return(t,a)=>i(e).socialLinks?(o(),A(oe,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),ro=g(oo,[["__scopeId","data-v-164c457f"]]),io=["href","rel","target"],lo={key:1},co={key:2},uo=m({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=L(),{hasSidebar:a}=D(),{currentLang:n}=Y(),r=$(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=$(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=$(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,b)=>(o(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(a)}])},[d("a",{class:"title",href:r.value??i(be)(i(n).link),rel:u.value,target:h.value},[c(p.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(o(),A(x,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):f("",!0),i(t).siteTitle?(o(),l("span",lo,V(i(t).siteTitle),1)):i(t).siteTitle===void 0?(o(),l("span",co,V(i(e).title),1)):f("",!0),c(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,io)],2))}}),po=g(uo,[["__scopeId","data-v-28a961f9"]]),vo={class:"items"},ho={class:"title"},fo=m({__name:"VPNavBarTranslations",setup(s){const{theme:e}=L(),{localeLinks:t,currentLang:a}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(a).label?(o(),A(Ae,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:v(()=>[d("div",vo,[d("p",ho,V(i(a).label),1),(o(!0),l(C,null,Q(i(t),u=>(o(),A(ne,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),mo=g(fo,[["__scopeId","data-v-c80d9ad0"]]),_o=s=>(B("data-v-40788ea0"),s=s(),E(),s),bo={class:"wrapper"},go={class:"container"},ko={class:"title"},$o={class:"content"},Ao={class:"content-body"},yo=_o(()=>d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1)),Po=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=we(),{hasSidebar:t}=D(),{frontmatter:a}=L(),n=N({});return Ve(()=>{n.value={"has-sidebar":t.value,home:a.value.layout==="home",top:e.value===0}}),(r,u)=>(o(),l("div",{class:T(["VPNavBar",n.value])},[d("div",bo,[d("div",go,[d("div",ko,[_(po,null,{"nav-bar-title-before":v(()=>[c(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",$o,[d("div",Ao,[c(r.$slots,"nav-bar-content-before",{},void 0,!0),_(no,{class:"search"}),_(Rn,{class:"menu"}),_(mo,{class:"translations"}),_(Ya,{class:"appearance"}),_(ro,{class:"social-links"}),_(Mn,{class:"extra"}),c(r.$slots,"nav-bar-content-after",{},void 0,!0),_(Wn,{class:"hamburger",active:r.isScreenOpen,onClick:u[0]||(u[0]=h=>r.$emit("toggle-screen"))},null,8,["active"])])])])]),yo],2))}}),So=g(Po,[["__scopeId","data-v-40788ea0"]]),Lo={key:0,class:"VPNavScreenAppearance"},Vo={class:"text"},Io=m({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=L();return(a,n)=>i(e).appearance&&i(e).appearance!=="force-dark"?(o(),l("div",Lo,[d("p",Vo,V(i(t).darkModeSwitchLabel||"Appearance"),1),_(ke)])):f("",!0)}}),No=g(Io,[["__scopeId","data-v-2b89f08b"]]),To=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=R("close-screen");return(t,a)=>(o(),A(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Co=g(To,[["__scopeId","data-v-27d04aeb"]]),wo=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=R("close-screen");return(t,a)=>(o(),A(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[H(V(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Oe=g(wo,[["__scopeId","data-v-7179dbb7"]]),Mo={class:"VPNavScreenMenuGroupSection"},Bo={key:0,class:"title"},Eo=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(o(),l("div",Mo,[e.text?(o(),l("p",Bo,V(e.text),1)):f("",!0),(o(!0),l(C,null,Q(e.items,a=>(o(),A(Oe,{key:a.text,item:a},null,8,["item"]))),128))]))}}),Qo=g(Eo,[["__scopeId","data-v-4b8941ac"]]),Fo=s=>(B("data-v-c9df2649"),s=s(),E(),s),Ho=["aria-controls","aria-expanded"],Wo=["innerHTML"],Do=Fo(()=>d("span",{class:"vpi-plus button-icon"},null,-1)),Uo=["id"],Oo={key:1,class:"group"},Go=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=N(!1),a=$(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,u)=>(o(),l("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":a.value,"aria-expanded":t.value,onClick:n},[d("span",{class:"button-text",innerHTML:r.text},null,8,Wo),Do],8,Ho),d("div",{id:a.value,class:"items"},[(o(!0),l(C,null,Q(r.items,h=>(o(),l(C,{key:h.text},["link"in h?(o(),l("div",{key:h.text,class:"item"},[_(Oe,{item:h},null,8,["item"])])):(o(),l("div",Oo,[_(Qo,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Uo)],2))}}),Ko=g(Go,[["__scopeId","data-v-c9df2649"]]),Jo={key:0,class:"VPNavScreenMenu"},jo=m({__name:"VPNavScreenMenu",setup(s){const{theme:e}=L();return(t,a)=>i(e).nav?(o(),l("nav",Jo,[(o(!0),l(C,null,Q(i(e).nav,n=>(o(),l(C,{key:n.text},["link"in n?(o(),A(Co,{key:0,item:n},null,8,["item"])):(o(),A(Ko,{key:1,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),zo=m({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=L();return(t,a)=>i(e).socialLinks?(o(),A(oe,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),Ge=s=>(B("data-v-362991c2"),s=s(),E(),s),Ro=Ge(()=>d("span",{class:"vpi-languages icon lang"},null,-1)),Zo=Ge(()=>d("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Yo={class:"list"},Xo=m({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),a=N(!1);function n(){a.value=!a.value}return(r,u)=>i(e).length&&i(t).label?(o(),l("div",{key:0,class:T(["VPNavScreenTranslations",{open:a.value}])},[d("button",{class:"title",onClick:n},[Ro,H(" "+V(i(t).label)+" ",1),Zo]),d("ul",Yo,[(o(!0),l(C,null,Q(i(e),h=>(o(),l("li",{key:h.link,class:"item"},[_(F,{class:"link",href:h.link},{default:v(()=>[H(V(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),qo=g(Xo,[["__scopeId","data-v-362991c2"]]),xo={class:"container"},er=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=N(null),t=Me(ae?document.body:null);return(a,n)=>(o(),A(he,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:v(()=>[a.open?(o(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",xo,[c(a.$slots,"nav-screen-content-before",{},void 0,!0),_(jo,{class:"menu"}),_(qo,{class:"translations"}),_(No,{class:"appearance"}),_(zo,{class:"social-links"}),c(a.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),tr=g(er,[["__scopeId","data-v-382f42e9"]]),sr={key:0,class:"VPNav"},ar=m({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:a}=Ha(),{frontmatter:n}=L(),r=$(()=>n.value.navbar!==!1);return _e("close-screen",t),ee(()=>{ae&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,h)=>r.value?(o(),l("header",sr,[_(So,{"is-screen-open":i(e),onToggleScreen:i(a)},{"nav-bar-title-before":v(()=>[c(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),_(tr,{open:i(e)},{"nav-screen-content-before":v(()=>[c(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),nr=g(ar,[["__scopeId","data-v-f1e365da"]]),Ke=s=>(B("data-v-2ea20db7"),s=s(),E(),s),or=["role","tabindex"],rr=Ke(()=>d("div",{class:"indicator"},null,-1)),ir=Ke(()=>d("span",{class:"vpi-chevron-right caret-icon"},null,-1)),lr=[ir],cr={key:1,class:"items"},ur=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:a,isLink:n,isActiveLink:r,hasActiveLink:u,hasChildren:h,toggle:p}=Nt($(()=>e.item)),b=$(()=>h.value?"section":"div"),S=$(()=>n.value?"a":"div"),k=$(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),y=$(()=>n.value?void 0:"button"),P=$(()=>[[`level-${e.depth}`],{collapsible:a.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":u.value}]);function w(I){"key"in I&&I.key!=="Enter"||!e.item.link&&p()}function M(){e.item.link&&p()}return(I,U)=>{const O=G("VPSidebarItem",!0);return o(),A(z(b.value),{class:T(["VPSidebarItem",P.value])},{default:v(()=>[I.item.text?(o(),l("div",X({key:0,class:"item",role:y.value},nt(I.item.items?{click:w,keydown:w}:{},!0),{tabindex:I.item.items&&0}),[rr,I.item.link?(o(),A(F,{key:0,tag:S.value,class:"link",href:I.item.link,rel:I.item.rel,target:I.item.target},{default:v(()=>[(o(),A(z(k.value),{class:"text",innerHTML:I.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(o(),A(z(k.value),{key:1,class:"text",innerHTML:I.item.text},null,8,["innerHTML"])),I.item.collapsed!=null&&I.item.items&&I.item.items.length?(o(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:ot(M,["enter"]),tabindex:"0"},lr,32)):f("",!0)],16,or)):f("",!0),I.item.items&&I.item.items.length?(o(),l("div",cr,[I.depth<5?(o(!0),l(C,{key:0},Q(I.item.items,j=>(o(),A(O,{key:j.text,item:j,depth:I.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),dr=g(ur,[["__scopeId","data-v-2ea20db7"]]),Je=s=>(B("data-v-ec846e01"),s=s(),E(),s),pr=Je(()=>d("div",{class:"curtain"},null,-1)),vr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},hr=Je(()=>d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),fr=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=D(),a=s,n=N(null),r=Me(ae?document.body:null);return W([a,n],()=>{var u;a.open?(r.value=!0,(u=n.value)==null||u.focus()):r.value=!1},{immediate:!0,flush:"post"}),(u,h)=>i(t)?(o(),l("aside",{key:0,class:T(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:n,onClick:h[0]||(h[0]=rt(()=>{},["stop"]))},[pr,d("nav",vr,[hr,c(u.$slots,"sidebar-nav-before",{},void 0,!0),(o(!0),l(C,null,Q(i(e),p=>(o(),l("div",{key:p.text,class:"group"},[_(dr,{item:p,depth:0},null,8,["item"])]))),128)),c(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),mr=g(fr,[["__scopeId","data-v-ec846e01"]]),_r=m({__name:"VPSkipLink",setup(s){const e=se(),t=N();W(()=>e.path,()=>t.value.focus());function a({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(o(),l(C,null,[d("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:a}," Skip to content ")],64))}}),br=g(_r,[["__scopeId","data-v-c3508ec8"]]),gr=m({__name:"Layout",setup(s){const{isOpen:e,open:t,close:a}=D(),n=se();W(()=>n.path,a),It(e,a);const{frontmatter:r}=L(),u=Be(),h=$(()=>!!u["home-hero-image"]);return _e("hero-image-slot-exists",h),(p,b)=>{const S=G("Content");return i(r).layout!==!1?(o(),l("div",{key:0,class:T(["Layout",i(r).pageClass])},[c(p.$slots,"layout-top",{},void 0,!0),_(br),_(vt,{class:"backdrop",show:i(e),onClick:i(a)},null,8,["show","onClick"]),_(nr,null,{"nav-bar-title-before":v(()=>[c(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[c(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),_(Fa,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),_(mr,{open:i(e)},{"sidebar-nav-before":v(()=>[c(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[c(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),_(_a,null,{"page-top":v(()=>[c(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[c(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[c(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[c(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[c(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),_(Aa),c(p.$slots,"layout-bottom",{},void 0,!0)],2)):(o(),A(S,{key:1}))}}}),kr=g(gr,[["__scopeId","data-v-a9a9e638"]]),$r={},Ar={class:"VPTeamPage"};function yr(s,e){return o(),l("div",Ar,[c(s.$slots,"default")])}const Pi=g($r,[["render",yr],["__scopeId","data-v-c2f8e101"]]),Pr={},Sr={class:"VPTeamPageTitle"},Lr={key:0,class:"title"},Vr={key:1,class:"lead"};function Ir(s,e){return o(),l("div",Sr,[s.$slots.title?(o(),l("h1",Lr,[c(s.$slots,"title",{},void 0,!0)])):f("",!0),s.$slots.lead?(o(),l("p",Vr,[c(s.$slots,"lead",{},void 0,!0)])):f("",!0)])}const Si=g(Pr,[["render",Ir],["__scopeId","data-v-e277e15c"]]),Nr={},Tr=s=>(B("data-v-d43bc49d"),s=s(),E(),s),Cr={class:"VPTeamPageSection"},wr={class:"title"},Mr=Tr(()=>d("div",{class:"title-line"},null,-1)),Br={key:0,class:"title-text"},Er={key:0,class:"lead"},Qr={key:1,class:"members"};function Fr(s,e){return o(),l("section",Cr,[d("div",wr,[Mr,s.$slots.title?(o(),l("h2",Br,[c(s.$slots,"title",{},void 0,!0)])):f("",!0)]),s.$slots.lead?(o(),l("p",Er,[c(s.$slots,"lead",{},void 0,!0)])):f("",!0),s.$slots.members?(o(),l("div",Qr,[c(s.$slots,"members",{},void 0,!0)])):f("",!0)])}const Li=g(Nr,[["render",Fr],["__scopeId","data-v-d43bc49d"]]),Hr=s=>(B("data-v-f9987cb6"),s=s(),E(),s),Wr={class:"profile"},Dr={class:"avatar"},Ur=["src","alt"],Or={class:"data"},Gr={class:"name"},Kr={key:0,class:"affiliation"},Jr={key:0,class:"title"},jr={key:1,class:"at"},zr=["innerHTML"],Rr={key:2,class:"links"},Zr={key:0,class:"sp"},Yr=Hr(()=>d("span",{class:"vpi-heart sp-icon"},null,-1)),Xr=m({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(s){return(e,t)=>(o(),l("article",{class:T(["VPTeamMembersItem",[e.size]])},[d("div",Wr,[d("figure",Dr,[d("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,Ur)]),d("div",Or,[d("h1",Gr,V(e.member.name),1),e.member.title||e.member.org?(o(),l("p",Kr,[e.member.title?(o(),l("span",Jr,V(e.member.title),1)):f("",!0),e.member.title&&e.member.org?(o(),l("span",jr," @ ")):f("",!0),e.member.org?(o(),A(F,{key:2,class:T(["org",{link:e.member.orgLink}]),href:e.member.orgLink,"no-icon":""},{default:v(()=>[H(V(e.member.org),1)]),_:1},8,["class","href"])):f("",!0)])):f("",!0),e.member.desc?(o(),l("p",{key:1,class:"desc",innerHTML:e.member.desc},null,8,zr)):f("",!0),e.member.links?(o(),l("div",Rr,[_(oe,{links:e.member.links},null,8,["links"])])):f("",!0)])]),e.member.sponsor?(o(),l("div",Zr,[_(F,{class:"sp-link",href:e.member.sponsor,"no-icon":""},{default:v(()=>[Yr,H(" "+V(e.member.actionText||"Sponsor"),1)]),_:1},8,["href"])])):f("",!0)],2))}}),qr=g(Xr,[["__scopeId","data-v-f9987cb6"]]),xr={class:"container"},ei=m({__name:"VPTeamMembers",props:{size:{default:"medium"},members:{}},setup(s){const e=s,t=$(()=>[e.size,`count-${e.members.length}`]);return(a,n)=>(o(),l("div",{class:T(["VPTeamMembers",t.value])},[d("div",xr,[(o(!0),l(C,null,Q(a.members,r=>(o(),l("div",{key:r.name,class:"item"},[_(qr,{size:a.size,member:r},null,8,["size","member"])]))),128))])],2))}}),Vi=g(ei,[["__scopeId","data-v-fba19bad"]]),Se={Layout:kr,enhanceApp:({app:s})=>{s.component("Badge",ut)}},ti={},si=d("br",null,null,-1),ai={style:{"text-align":"center"}},ni=it('

Read n-d array like-data

DiskArrays.jl

Get your chunks!

Named Dimensions

DimensionalData.jl

Select & Index!

Out of memory data

Zarr.jl

Chunkerd, compressed !

Rasterized spatial data

Rasters.jl

Read and manipulate !

Array-oriented data

NetCDF.jl

Scientific binary data.

Raster and vector data

ArchGDAL.jl

GDAL in Julia.

An interface for

GeoInterface.jl

geospatial data in Julia.

A higher level interface

GRIBDatasets.jl

for reading GRIB files.

Array-oriented data

NCDatasets.jl

Scientific binary data.

',9);function oi(s,e){const t=G("font");return o(),l(C,null,[si,d("h1",ai,[d("strong",null,[_(t,{color:"orange"},{default:v(()=>[H(" Package Ecosystem")]),_:1})])]),ni],64)}const ri=g(ti,[["render",oi]]),ii=s=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:a=>async(...n)=>{const r=a(...n),u=s.value;if(!u)return r;const h=u.offsetTop-e.scrollTop;return await Ce(),e.scrollTop=u.offsetTop-h,r}}},je="vitepress:tabSharedState",Z=typeof localStorage<"u"?localStorage:null,ze="vitepress:tabsSharedState",li=()=>{const s=Z==null?void 0:Z.getItem(ze);if(s)try{return JSON.parse(s)}catch{}return{}},ci=s=>{Z&&Z.setItem(ze,JSON.stringify(s))},ui=s=>{const e=lt({});W(()=>e.content,(t,a)=>{t&&a&&ci(t)},{deep:!0}),s.provide(je,e)},di=(s,e)=>{const t=R(je);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");J(()=>{t.content||(t.content=li())});const a=N(),n=$({get(){var p;const u=e.value,h=s.value;if(u){const b=(p=t.content)==null?void 0:p[u];if(b&&h.includes(b))return b}else{const b=a.value;if(b)return b}return h[0]},set(u){const h=e.value;h?t.content&&(t.content[h]=u):a.value=u}});return{selected:n,select:u=>{n.value=u}}};let Le=0;const pi=()=>(Le++,""+Le);function vi(){const s=Be();return $(()=>{var a;const t=(a=s.default)==null?void 0:a.call(s);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const Re="vitepress:tabSingleState",hi=s=>{_e(Re,s)},fi=()=>{const s=R(Re);if(!s)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return s},mi={class:"plugin-tabs"},_i=["id","aria-selected","aria-controls","tabindex","onClick"],bi=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(s){const e=s,t=vi(),{selected:a,select:n}=di(t,ct(e,"sharedStateKey")),r=N(),{stabilizeScrollPosition:u}=ii(r),h=u(n),p=N([]),b=k=>{var w;const y=t.value.indexOf(a.value);let P;k.key==="ArrowLeft"?P=y>=1?y-1:t.value.length-1:k.key==="ArrowRight"&&(P=y(o(),l("div",mi,[d("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:b},[(o(!0),l(C,null,Q(i(t),P=>(o(),l("button",{id:`tab-${P}-${i(S)}`,ref_for:!0,ref_key:"buttonRefs",ref:p,key:P,role:"tab",class:"plugin-tabs--tab","aria-selected":P===i(a),"aria-controls":`panel-${P}-${i(S)}`,tabindex:P===i(a)?0:-1,onClick:()=>i(h)(P)},V(P),9,_i))),128))],544),c(k.$slots,"default")]))}}),gi=["id","aria-labelledby"],ki=m({__name:"PluginTabsTab",props:{label:{}},setup(s){const{uid:e,selected:t}=fi();return(a,n)=>i(t)===a.label?(o(),l("div",{key:0,id:`panel-${a.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${a.label}-${i(e)}`},[c(a.$slots,"default",{},void 0,!0)],8,gi)):f("",!0)}}),$i=g(ki,[["__scopeId","data-v-9b0d03d2"]]),Ai=s=>{ui(s),s.component("PluginTabs",bi),s.component("PluginTabsTab",$i)},Ii={extends:Se,Layout(){return ye(Se.Layout,null,{"aside-ads-before":()=>ye(ri)})},enhanceApp({app:s,router:e,siteData:t}){Ai(s)}};export{Ii as R,Si as V,Vi as a,Li as b,Pi as c,Zn as d,L as u}; +const __vite__fileDeps=["assets/chunks/VPLocalSearchBox.D0KAGSGD.js","assets/chunks/framework.D-wbpLqx.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); +import{d as m,o,c as l,r as c,n as T,a as H,t as V,b as A,w as v,e as f,T as he,_ as g,u as Ze,i as Ye,f as Xe,g as fe,h as $,j as d,k as i,p as B,l as E,m as K,q as ce,s as N,v as W,x as ee,y as J,z as me,A as Ve,B as qe,C as xe,D as G,F as C,E as Q,G as Ie,H as te,I as _,J as z,K as Ne,L as se,M as X,N as R,O as et,P as Te,Q as ue,R as Ce,S as we,U as ae,V as tt,W as st,X as at,Y as Me,Z as _e,$ as nt,a0 as ot,a1 as rt,a2 as Be,a3 as it,a4 as lt,a5 as ct,a6 as ye}from"./framework.D-wbpLqx.js";const ut=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(o(),l("span",{class:T(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[H(V(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},pt=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(o(),A(he,{name:"fade"},{default:v(()=>[e.show?(o(),l("div",dt)):f("",!0)]),_:1}))}}),vt=g(pt,[["__scopeId","data-v-b06cdb19"]]),L=Ze;function ht(s,e){let t,a=!1;return()=>{t&&clearTimeout(t),a?t=setTimeout(s,e):(s(),(a=!0)&&setTimeout(()=>a=!1,e))}}function de(s){return/^\//.test(s)?s:`/${s}`}function be(s){const{pathname:e,search:t,hash:a,protocol:n}=new URL(s,"http://a.com");if(Ye(s)||s.startsWith("#")||!n.startsWith("http")||!Xe(e))return s;const{site:r}=L(),u=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${a}`);return fe(u)}function Y({correspondingLink:s=!1}={}){const{site:e,localeIndex:t,page:a,theme:n,hash:r}=L(),u=$(()=>{var p,b;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((b=e.value.locales[t.value])==null?void 0:b.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:$(()=>Object.entries(e.value.locales).flatMap(([p,b])=>u.value.label===b.label?[]:{text:b.label,link:ft(b.link||(p==="root"?"/":`/${p}/`),n.value.i18nRouting!==!1&&s,a.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:u}}function ft(s,e,t,a){return e?s.replace(/\/$/,"")+de(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,a?".html":"")):s}const mt=s=>(B("data-v-951cab6c"),s=s(),E(),s),_t={class:"NotFound"},bt={class:"code"},gt={class:"title"},kt=mt(()=>d("div",{class:"divider"},null,-1)),$t={class:"quote"},At={class:"action"},yt=["href","aria-label"],Pt=m({__name:"NotFound",setup(s){const{theme:e}=L(),{currentLang:t}=Y();return(a,n)=>{var r,u,h,p,b;return o(),l("div",_t,[d("p",bt,V(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),d("h1",gt,V(((u=i(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),kt,d("blockquote",$t,V(((h=i(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",At,[d("a",{class:"link",href:i(fe)(i(t).link),"aria-label":((p=i(e).notFound)==null?void 0:p.linkLabel)??"go to home"},V(((b=i(e).notFound)==null?void 0:b.linkText)??"Take me home"),9,yt)])])}}}),St=g(Pt,[["__scopeId","data-v-951cab6c"]]);function Ee(s,e){if(Array.isArray(s))return q(s);if(s==null)return[];e=de(e);const t=Object.keys(s).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(de(n))),a=t?s[t]:[];return Array.isArray(a)?q(a):q(a.items,a.base)}function Lt(s){const e=[];let t=0;for(const a in s){const n=s[a];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function Vt(s){const e=[];function t(a){for(const n of a)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(s),e}function pe(s,e){return Array.isArray(e)?e.some(t=>pe(s,t)):K(s,e.link)?!0:e.items?pe(s,e.items):!1}function q(s,e){return[...s].map(t=>{const a={...t},n=a.base||e;return n&&a.link&&(a.link=n+a.link),a.items&&(a.items=q(a.items,n)),a})}function D(){const{frontmatter:s,page:e,theme:t}=L(),a=ce("(min-width: 960px)"),n=N(!1),r=$(()=>{const M=t.value.sidebar,I=e.value.relativePath;return M?Ee(M,I):[]}),u=N(r.value);W(r,(M,I)=>{JSON.stringify(M)!==JSON.stringify(I)&&(u.value=r.value)});const h=$(()=>s.value.sidebar!==!1&&u.value.length>0&&s.value.layout!=="home"),p=$(()=>b?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),b=$(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),S=$(()=>h.value&&a.value),k=$(()=>h.value?Lt(u.value):[]);function y(){n.value=!0}function P(){n.value=!1}function w(){n.value?P():y()}return{isOpen:n,sidebar:u,sidebarGroups:k,hasSidebar:h,hasAside:b,leftAside:p,isSidebarEnabled:S,open:y,close:P,toggle:w}}function It(s,e){let t;ee(()=>{t=s.value?document.activeElement:void 0}),J(()=>{window.addEventListener("keyup",a)}),me(()=>{window.removeEventListener("keyup",a)});function a(n){n.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function Nt(s){const{page:e,hash:t}=L(),a=N(!1),n=$(()=>s.value.collapsed!=null),r=$(()=>!!s.value.link),u=N(!1),h=()=>{u.value=K(e.value.relativePath,s.value.link)};W([e,s,t],h),J(h);const p=$(()=>u.value?!0:s.value.items?pe(e.value.relativePath,s.value.items):!1),b=$(()=>!!(s.value.items&&s.value.items.length));ee(()=>{a.value=!!(n.value&&s.value.collapsed)}),Ve(()=>{(u.value||p.value)&&(a.value=!1)});function S(){n.value&&(a.value=!a.value)}return{collapsed:a,collapsible:n,isLink:r,isActiveLink:u,hasActiveLink:p,hasChildren:b,toggle:S}}function Tt(){const{hasSidebar:s}=D(),e=ce("(min-width: 960px)"),t=ce("(min-width: 1280px)");return{isAsideEnabled:$(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const ve=[];function Qe(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function ge(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const a=Number(t.tagName[1]);return{element:t,title:Ct(t),link:"#"+t.id,level:a}});return wt(e,s)}function Ct(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function wt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[a,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(u=>u.level>=a&&u.level<=n),ve.length=0;for(const{element:u,link:h}of s)ve.push({element:u,link:h});const r=[];e:for(let u=0;u=0;p--){const b=s[p];if(b.level{requestAnimationFrame(r),window.addEventListener("scroll",a)}),qe(()=>{u(location.hash)}),me(()=>{window.removeEventListener("scroll",a)});function r(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,b=document.body.offsetHeight,S=Math.abs(h+p-b)<1,k=ve.map(({element:P,link:w})=>({link:w,top:Bt(P)})).filter(({top:P})=>!Number.isNaN(P)).sort((P,w)=>P.top-w.top);if(!k.length){u(null);return}if(h<1){u(null);return}if(S){u(k[k.length-1].link);return}let y=null;for(const{link:P,top:w}of k){if(w>h+xe()+4)break;y=P}u(y)}function u(h){n&&n.classList.remove("active"),h==null?n=null:n=s.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}const Et=["href","title"],Qt=m({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function e({target:t}){const a=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(a));n==null||n.focus({preventScroll:!0})}return(t,a)=>{const n=G("VPDocOutlineItem",!0);return o(),l("ul",{class:T(["VPDocOutlineItem",t.root?"root":"nested"])},[(o(!0),l(C,null,Q(t.headers,({children:r,link:u,title:h})=>(o(),l("li",null,[d("a",{class:"outline-link",href:u,onClick:e,title:h},V(h),9,Et),r!=null&&r.length?(o(),A(n,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Fe=g(Qt,[["__scopeId","data-v-3f927ebe"]]),Ft={class:"content"},Ht={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Wt=m({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=L(),a=Ie([]);te(()=>{a.value=ge(e.value.outline??t.value.outline)});const n=N(),r=N();return Mt(n,r),(u,h)=>(o(),l("nav",{"aria-labelledby":"doc-outline-aria-label",class:T(["VPDocAsideOutline",{"has-outline":a.value.length>0}]),ref_key:"container",ref:n},[d("div",Ft,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",Ht,V(i(Qe)(i(t))),1),_(Fe,{headers:a.value,root:!0},null,8,["headers"])])],2))}}),Dt=g(Wt,[["__scopeId","data-v-b38bf2ff"]]),Ut={class:"VPDocAsideCarbonAds"},Ot=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,a)=>(o(),l("div",Ut,[_(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Gt=s=>(B("data-v-6d7b3c46"),s=s(),E(),s),Kt={class:"VPDocAside"},Jt=Gt(()=>d("div",{class:"spacer"},null,-1)),jt=m({__name:"VPDocAside",setup(s){const{theme:e}=L();return(t,a)=>(o(),l("div",Kt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),_(Dt),c(t.$slots,"aside-outline-after",{},void 0,!0),Jt,c(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(o(),A(Ot,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):f("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),zt=g(jt,[["__scopeId","data-v-6d7b3c46"]]);function Rt(){const{theme:s,page:e}=L();return $(()=>{const{text:t="Edit this page",pattern:a=""}=s.value.editLink||{};let n;return typeof a=="function"?n=a(e.value):n=a.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Zt(){const{page:s,theme:e,frontmatter:t}=L();return $(()=>{var b,S,k,y,P,w,M,I;const a=Ee(e.value.sidebar,s.value.relativePath),n=Vt(a),r=Yt(n,U=>U.link.replace(/[?#].*$/,"")),u=r.findIndex(U=>K(s.value.relativePath,U.link)),h=((b=e.value.docFooter)==null?void 0:b.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((S=e.value.docFooter)==null?void 0:S.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((k=r[u-1])==null?void 0:k.docFooterText)??((y=r[u-1])==null?void 0:y.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((P=r[u-1])==null?void 0:P.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((w=r[u+1])==null?void 0:w.docFooterText)??((M=r[u+1])==null?void 0:M.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((I=r[u+1])==null?void 0:I.link)}}})}function Yt(s,e){const t=new Set;return s.filter(a=>{const n=e(a);return t.has(n)?!1:t.add(n)})}const F=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.tag??(e.href?"a":"span")),a=$(()=>e.href&&Ne.test(e.href)||e.target==="_blank");return(n,r)=>(o(),A(z(t.value),{class:T(["VPLink",{link:n.href,"vp-external-link-icon":a.value,"no-icon":n.noIcon}]),href:n.href?i(be)(n.href):void 0,target:n.target??(a.value?"_blank":void 0),rel:n.rel??(a.value?"noreferrer":void 0)},{default:v(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Xt={class:"VPLastUpdated"},qt=["datetime"],xt=m({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:a,lang:n}=L(),r=$(()=>new Date(a.value.lastUpdated??t.value.lastUpdated)),u=$(()=>r.value.toISOString()),h=N("");return J(()=>{ee(()=>{var p,b,S;h.value=new Intl.DateTimeFormat((b=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&b.forceLocale?n.value:void 0,((S=e.value.lastUpdated)==null?void 0:S.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(p,b)=>{var S;return o(),l("p",Xt,[H(V(((S=i(e).lastUpdated)==null?void 0:S.text)||i(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:u.value},V(h.value),9,qt)])}}}),es=g(xt,[["__scopeId","data-v-9da12f1d"]]),He=s=>(B("data-v-b88cabfa"),s=s(),E(),s),ts={key:0,class:"VPDocFooter"},ss={key:0,class:"edit-info"},as={key:0,class:"edit-link"},ns=He(()=>d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),os={key:1,class:"last-updated"},rs={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},is=He(()=>d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),ls={class:"pager"},cs=["innerHTML"],us=["innerHTML"],ds={class:"pager"},ps=["innerHTML"],vs=["innerHTML"],hs=m({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:a}=L(),n=Rt(),r=Zt(),u=$(()=>e.value.editLink&&a.value.editLink!==!1),h=$(()=>t.value.lastUpdated&&a.value.lastUpdated!==!1),p=$(()=>u.value||h.value||r.value.prev||r.value.next);return(b,S)=>{var k,y,P,w;return p.value?(o(),l("footer",ts,[c(b.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(o(),l("div",ss,[u.value?(o(),l("div",as,[_(F,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:v(()=>[ns,H(" "+V(i(n).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(o(),l("div",os,[_(es)])):f("",!0)])):f("",!0),(k=i(r).prev)!=null&&k.link||(y=i(r).next)!=null&&y.link?(o(),l("nav",rs,[is,d("div",ls,[(P=i(r).prev)!=null&&P.link?(o(),A(F,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:v(()=>{var M;return[d("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.prev)||"Previous page"},null,8,cs),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,us)]}),_:1},8,["href"])):f("",!0)]),d("div",ds,[(w=i(r).next)!=null&&w.link?(o(),A(F,{key:0,class:"pager-link next",href:i(r).next.link},{default:v(()=>{var M;return[d("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.next)||"Next page"},null,8,ps),d("span",{class:"title",innerHTML:i(r).next.text},null,8,vs)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),fs=g(hs,[["__scopeId","data-v-b88cabfa"]]),ms=s=>(B("data-v-83890dd9"),s=s(),E(),s),_s={class:"container"},bs=ms(()=>d("div",{class:"aside-curtain"},null,-1)),gs={class:"aside-container"},ks={class:"aside-content"},$s={class:"content"},As={class:"content-container"},ys={class:"main"},Ps=m({__name:"VPDoc",setup(s){const{theme:e}=L(),t=se(),{hasSidebar:a,hasAside:n,leftAside:r}=D(),u=$(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const b=G("Content");return o(),l("div",{class:T(["VPDoc",{"has-sidebar":i(a),"has-aside":i(n)}])},[c(h.$slots,"doc-top",{},void 0,!0),d("div",_s,[i(n)?(o(),l("div",{key:0,class:T(["aside",{"left-aside":i(r)}])},[bs,d("div",gs,[d("div",ks,[_(zt,null,{"aside-top":v(()=>[c(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),d("div",$s,[d("div",As,[c(h.$slots,"doc-before",{},void 0,!0),d("main",ys,[_(b,{class:T(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),_(fs,null,{"doc-footer-before":v(()=>[c(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(h.$slots,"doc-after",{},void 0,!0)])])]),c(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Ss=g(Ps,[["__scopeId","data-v-83890dd9"]]),Ls=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.href&&Ne.test(e.href)),a=$(()=>e.tag||e.href?"a":"button");return(n,r)=>(o(),A(z(a.value),{class:T(["VPButton",[n.size,n.theme]]),href:n.href?i(be)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[H(V(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),Vs=g(Ls,[["__scopeId","data-v-14206e74"]]),Is=["src","alt"],Ns=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const a=G("VPImage",!0);return e.image?(o(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(o(),l("img",X({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Is)):(o(),l(C,{key:1},[_(a,X({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),_(a,X({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),x=g(Ns,[["__scopeId","data-v-35a7d0b8"]]),Ts=s=>(B("data-v-955009fc"),s=s(),E(),s),Cs={class:"container"},ws={class:"main"},Ms={key:0,class:"name"},Bs=["innerHTML"],Es=["innerHTML"],Qs=["innerHTML"],Fs={key:0,class:"actions"},Hs={key:0,class:"image"},Ws={class:"image-container"},Ds=Ts(()=>d("div",{class:"image-bg"},null,-1)),Us=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=R("hero-image-slot-exists");return(t,a)=>(o(),l("div",{class:T(["VPHero",{"has-image":t.image||i(e)}])},[d("div",Cs,[d("div",ws,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(o(),l("h1",Ms,[d("span",{innerHTML:t.name,class:"clip"},null,8,Bs)])):f("",!0),t.text?(o(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Es)):f("",!0),t.tagline?(o(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Qs)):f("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(o(),l("div",Fs,[(o(!0),l(C,null,Q(t.actions,n=>(o(),l("div",{key:n.link,class:"action"},[_(Vs,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(o(),l("div",Hs,[d("div",Ws,[Ds,c(t.$slots,"home-hero-image",{},()=>[t.image?(o(),A(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Os=g(Us,[["__scopeId","data-v-955009fc"]]),Gs=m({__name:"VPHomeHero",setup(s){const{frontmatter:e}=L();return(t,a)=>i(e).hero?(o(),A(Os,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":v(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ks=s=>(B("data-v-f5e9645b"),s=s(),E(),s),Js={class:"box"},js={key:0,class:"icon"},zs=["innerHTML"],Rs=["innerHTML"],Zs=["innerHTML"],Ys={key:4,class:"link-text"},Xs={class:"link-text-value"},qs=Ks(()=>d("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),xs=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(o(),A(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[d("article",Js,[typeof e.icon=="object"&&e.icon.wrap?(o(),l("div",js,[_(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(o(),A(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(o(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,zs)):f("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Rs),e.details?(o(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Zs)):f("",!0),e.linkText?(o(),l("div",Ys,[d("p",Xs,[H(V(e.linkText)+" ",1),qs])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),ea=g(xs,[["__scopeId","data-v-f5e9645b"]]),ta={key:0,class:"VPFeatures"},sa={class:"container"},aa={class:"items"},na=m({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=$(()=>{const a=e.features.length;if(a){if(a===2)return"grid-2";if(a===3)return"grid-3";if(a%3===0)return"grid-6";if(a>3)return"grid-4"}else return});return(a,n)=>a.features?(o(),l("div",ta,[d("div",sa,[d("div",aa,[(o(!0),l(C,null,Q(a.features,r=>(o(),l("div",{key:r.title,class:T(["item",[t.value]])},[_(ea,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),oa=g(na,[["__scopeId","data-v-d0a190d7"]]),ra=m({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=L();return(t,a)=>i(e).features?(o(),A(oa,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):f("",!0)}}),ia=m({__name:"VPHomeContent",setup(s){const{width:e}=et({initialWidth:0,includeScrollbar:!1});return(t,a)=>(o(),l("div",{class:"vp-doc container",style:Te(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),la=g(ia,[["__scopeId","data-v-7a48a447"]]),ca={class:"VPHome"},ua=m({__name:"VPHome",setup(s){const{frontmatter:e}=L();return(t,a)=>{const n=G("Content");return o(),l("div",ca,[c(t.$slots,"home-hero-before",{},void 0,!0),_(Gs,null,{"home-hero-info-before":v(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),_(ra),c(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(o(),A(la,{key:0},{default:v(()=>[_(n)]),_:1})):(o(),A(n,{key:1}))])}}}),da=g(ua,[["__scopeId","data-v-cbb6ec48"]]),pa={},va={class:"VPPage"};function ha(s,e){const t=G("Content");return o(),l("div",va,[c(s.$slots,"page-top"),_(t),c(s.$slots,"page-bottom")])}const fa=g(pa,[["render",ha]]),ma=m({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=L(),{hasSidebar:a}=D();return(n,r)=>(o(),l("div",{class:T(["VPContent",{"has-sidebar":i(a),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[_(St)],!0):i(t).layout==="page"?(o(),A(fa,{key:1},{"page-top":v(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(o(),A(da,{key:2},{"home-hero-before":v(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(o(),A(z(i(t).layout),{key:3})):(o(),A(Ss,{key:4},{"doc-top":v(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),_a=g(ma,[["__scopeId","data-v-91765379"]]),ba={class:"container"},ga=["innerHTML"],ka=["innerHTML"],$a=m({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:a}=D();return(n,r)=>i(e).footer&&i(t).footer!==!1?(o(),l("footer",{key:0,class:T(["VPFooter",{"has-sidebar":i(a)}])},[d("div",ba,[i(e).footer.message?(o(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,ga)):f("",!0),i(e).footer.copyright?(o(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,ka)):f("",!0)])],2)):f("",!0)}}),Aa=g($a,[["__scopeId","data-v-c970a860"]]);function ya(){const{theme:s,frontmatter:e}=L(),t=Ie([]),a=$(()=>t.value.length>0);return te(()=>{t.value=ge(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:a}}const Pa=s=>(B("data-v-bc9dc845"),s=s(),E(),s),Sa={class:"menu-text"},La=Pa(()=>d("span",{class:"vpi-chevron-right icon"},null,-1)),Va={class:"header"},Ia={class:"outline"},Na=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=L(),a=N(!1),n=N(0),r=N(),u=N();function h(k){var y;(y=r.value)!=null&&y.contains(k.target)||(a.value=!1)}W(a,k=>{if(k){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),ue("Escape",()=>{a.value=!1}),te(()=>{a.value=!1});function p(){a.value=!a.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function b(k){k.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Ce(()=>{a.value=!1}))}function S(){a.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(k,y)=>(o(),l("div",{class:"VPLocalNavOutlineDropdown",style:Te({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[k.headers.length>0?(o(),l("button",{key:0,onClick:p,class:T({open:a.value})},[d("span",Sa,V(i(Qe)(i(t))),1),La],2)):(o(),l("button",{key:1,onClick:S},V(i(t).returnToTopLabel||"Return to top"),1)),_(he,{name:"flyout"},{default:v(()=>[a.value?(o(),l("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:b},[d("div",Va,[d("a",{class:"top-link",href:"#",onClick:S},V(i(t).returnToTopLabel||"Return to top"),1)]),d("div",Ia,[_(Fe,{headers:k.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Ta=g(Na,[["__scopeId","data-v-bc9dc845"]]),Ca=s=>(B("data-v-070ab83d"),s=s(),E(),s),wa={class:"container"},Ma=["aria-expanded"],Ba=Ca(()=>d("span",{class:"vpi-align-left menu-icon"},null,-1)),Ea={class:"menu-text"},Qa=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:a}=D(),{headers:n}=ya(),{y:r}=we(),u=N(0);J(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{n.value=ge(t.value.outline??e.value.outline)});const h=$(()=>n.value.length===0),p=$(()=>h.value&&!a.value),b=$(()=>({VPLocalNav:!0,"has-sidebar":a.value,empty:h.value,fixed:p.value}));return(S,k)=>i(t).layout!=="home"&&(!p.value||i(r)>=u.value)?(o(),l("div",{key:0,class:T(b.value)},[d("div",wa,[i(a)?(o(),l("button",{key:0,class:"menu","aria-expanded":S.open,"aria-controls":"VPSidebarNav",onClick:k[0]||(k[0]=y=>S.$emit("open-menu"))},[Ba,d("span",Ea,V(i(e).sidebarMenuLabel||"Menu"),1)],8,Ma)):f("",!0),_(Ta,{headers:i(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Fa=g(Qa,[["__scopeId","data-v-070ab83d"]]);function Ha(){const s=N(!1);function e(){s.value=!0,window.addEventListener("resize",n)}function t(){s.value=!1,window.removeEventListener("resize",n)}function a(){s.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=se();return W(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:a}}const Wa={},Da={class:"VPSwitch",type:"button",role:"switch"},Ua={class:"check"},Oa={key:0,class:"icon"};function Ga(s,e){return o(),l("button",Da,[d("span",Ua,[s.$slots.default?(o(),l("span",Oa,[c(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Ka=g(Wa,[["render",Ga],["__scopeId","data-v-4a1c76db"]]),We=s=>(B("data-v-b79b56d4"),s=s(),E(),s),Ja=We(()=>d("span",{class:"vpi-sun sun"},null,-1)),ja=We(()=>d("span",{class:"vpi-moon moon"},null,-1)),za=m({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=L(),a=R("toggle-appearance",()=>{e.value=!e.value}),n=$(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(r,u)=>(o(),A(Ka,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(a)},{default:v(()=>[Ja,ja]),_:1},8,["title","aria-checked","onClick"]))}}),ke=g(za,[["__scopeId","data-v-b79b56d4"]]),Ra={key:0,class:"VPNavBarAppearance"},Za=m({__name:"VPNavBarAppearance",setup(s){const{site:e}=L();return(t,a)=>i(e).appearance&&i(e).appearance!=="force-dark"?(o(),l("div",Ra,[_(ke)])):f("",!0)}}),Ya=g(Za,[["__scopeId","data-v-ead91a81"]]),$e=N();let De=!1,le=0;function Xa(s){const e=N(!1);if(ae){!De&&qa(),le++;const t=W($e,a=>{var n,r,u;a===s.el.value||(n=s.el.value)!=null&&n.contains(a)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(u=s.onBlur)==null||u.call(s))});me(()=>{t(),le--,le||xa()})}return tt(e)}function qa(){document.addEventListener("focusin",Ue),De=!0,$e.value=document.activeElement}function xa(){document.removeEventListener("focusin",Ue)}function Ue(){$e.value=document.activeElement}const en={class:"VPMenuLink"},tn=m({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,a)=>(o(),l("div",en,[_(F,{class:T({active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[H(V(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=g(tn,[["__scopeId","data-v-8b74d055"]]),sn={class:"VPMenuGroup"},an={key:0,class:"title"},nn=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(o(),l("div",sn,[e.text?(o(),l("p",an,V(e.text),1)):f("",!0),(o(!0),l(C,null,Q(e.items,a=>(o(),l(C,null,["link"in a?(o(),A(ne,{key:0,item:a},null,8,["item"])):f("",!0)],64))),256))]))}}),on=g(nn,[["__scopeId","data-v-48c802d0"]]),rn={class:"VPMenu"},ln={key:0,class:"items"},cn=m({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(o(),l("div",rn,[e.items?(o(),l("div",ln,[(o(!0),l(C,null,Q(e.items,a=>(o(),l(C,{key:a.text},["link"in a?(o(),A(ne,{key:0,item:a},null,8,["item"])):(o(),A(on,{key:1,text:a.text,items:a.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),un=g(cn,[["__scopeId","data-v-97491713"]]),dn=s=>(B("data-v-e5380155"),s=s(),E(),s),pn=["aria-expanded","aria-label"],vn={key:0,class:"text"},hn=["innerHTML"],fn=dn(()=>d("span",{class:"vpi-chevron-down text-icon"},null,-1)),mn={key:1,class:"vpi-more-horizontal icon"},_n={class:"menu"},bn=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=N(!1),t=N();Xa({el:t,onBlur:a});function a(){e.value=!1}return(n,r)=>(o(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[n.button||n.icon?(o(),l("span",vn,[n.icon?(o(),l("span",{key:0,class:T([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(o(),l("span",{key:1,innerHTML:n.button},null,8,hn)):f("",!0),fn])):(o(),l("span",mn))],8,pn),d("div",_n,[_(un,{items:n.items},{default:v(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),Ae=g(bn,[["__scopeId","data-v-e5380155"]]),gn=["href","aria-label","innerHTML"],kn=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=$(()=>typeof e.icon=="object"?e.icon.svg:``);return(a,n)=>(o(),l("a",{class:"VPSocialLink no-icon",href:a.link,"aria-label":a.ariaLabel??(typeof a.icon=="string"?a.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,gn))}}),$n=g(kn,[["__scopeId","data-v-717b8b75"]]),An={class:"VPSocialLinks"},yn=m({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(o(),l("div",An,[(o(!0),l(C,null,Q(e.links,({link:a,icon:n,ariaLabel:r})=>(o(),A($n,{key:a,icon:n,link:a,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),oe=g(yn,[["__scopeId","data-v-ee7a9424"]]),Pn={key:0,class:"group translations"},Sn={class:"trans-title"},Ln={key:1,class:"group"},Vn={class:"item appearance"},In={class:"label"},Nn={class:"appearance-action"},Tn={key:2,class:"group"},Cn={class:"item social-links"},wn=m({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=L(),{localeLinks:a,currentLang:n}=Y({correspondingLink:!0}),r=$(()=>a.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>r.value?(o(),A(Ae,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(a).length&&i(n).label?(o(),l("div",Pn,[d("p",Sn,V(i(n).label),1),(o(!0),l(C,null,Q(i(a),p=>(o(),A(ne,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),i(e).appearance&&i(e).appearance!=="force-dark"?(o(),l("div",Ln,[d("div",Vn,[d("p",In,V(i(t).darkModeSwitchLabel||"Appearance"),1),d("div",Nn,[_(ke)])])])):f("",!0),i(t).socialLinks?(o(),l("div",Tn,[d("div",Cn,[_(oe,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Mn=g(wn,[["__scopeId","data-v-9b536d0b"]]),Bn=s=>(B("data-v-5dea55bf"),s=s(),E(),s),En=["aria-expanded"],Qn=Bn(()=>d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)),Fn=[Qn],Hn=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(o(),l("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=a=>e.$emit("click"))},Fn,10,En))}}),Wn=g(Hn,[["__scopeId","data-v-5dea55bf"]]),Dn=["innerHTML"],Un=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,a)=>(o(),A(F,{class:T({VPNavBarMenuLink:!0,active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[d("span",{innerHTML:t.item.text},null,8,Dn)]),_:1},8,["class","href","noIcon","target","rel"]))}}),On=g(Un,[["__scopeId","data-v-ed5ac1f6"]]),Gn=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=L(),a=r=>"link"in r?K(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(a),n=$(()=>a(e.item));return(r,u)=>(o(),A(Ae,{class:T({VPNavBarMenuGroup:!0,active:i(K)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Kn=s=>(B("data-v-492ea56d"),s=s(),E(),s),Jn={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},jn=Kn(()=>d("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),zn=m({__name:"VPNavBarMenu",setup(s){const{theme:e}=L();return(t,a)=>i(e).nav?(o(),l("nav",Jn,[jn,(o(!0),l(C,null,Q(i(e).nav,n=>(o(),l(C,{key:n.text},["link"in n?(o(),A(On,{key:0,item:n},null,8,["item"])):(o(),A(Gn,{key:1,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),Rn=g(zn,[["__scopeId","data-v-492ea56d"]]);function Zn(s){const{localeIndex:e,theme:t}=L();function a(n){var w,M,I;const r=n.split("."),u=(w=t.value.search)==null?void 0:w.options,h=u&&typeof u=="object",p=h&&((I=(M=u.locales)==null?void 0:M[e.value])==null?void 0:I.translations)||null,b=h&&u.translations||null;let S=p,k=b,y=s;const P=r.pop();for(const U of r){let O=null;const j=y==null?void 0:y[U];j&&(O=y=j);const re=k==null?void 0:k[U];re&&(O=k=re);const ie=S==null?void 0:S[U];ie&&(O=S=ie),j||(y=O),re||(k=O),ie||(S=O)}return(S==null?void 0:S[P])??(k==null?void 0:k[P])??(y==null?void 0:y[P])??""}return a}const Yn=["aria-label"],Xn={class:"DocSearch-Button-Container"},qn=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),xn={class:"DocSearch-Button-Placeholder"},eo=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Pe=m({__name:"VPNavBarSearchButton",setup(s){const t=Zn({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(a,n)=>(o(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[d("span",Xn,[qn,d("span",xn,V(i(t)("button.buttonText")),1)]),eo],8,Yn))}}),to={class:"VPNavBarSearch"},so={id:"local-search"},ao={key:1,id:"docsearch"},no=m({__name:"VPNavBarSearch",setup(s){const e=st(()=>at(()=>import("./VPLocalSearchBox.D0KAGSGD.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:a}=L(),n=N(!1),r=N(!1);J(()=>{});function u(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const k=new Event("keydown");k.key="k",k.metaKey=!0,window.dispatchEvent(k),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p(k){const y=k.target,P=y.tagName;return y.isContentEditable||P==="INPUT"||P==="SELECT"||P==="TEXTAREA"}const b=N(!1);ue("k",k=>{(k.ctrlKey||k.metaKey)&&(k.preventDefault(),b.value=!0)}),ue("/",k=>{p(k)||(k.preventDefault(),b.value=!0)});const S="local";return(k,y)=>{var P;return o(),l("div",to,[i(S)==="local"?(o(),l(C,{key:0},[b.value?(o(),A(i(e),{key:0,onClose:y[0]||(y[0]=w=>b.value=!1)})):f("",!0),d("div",so,[_(Pe,{onClick:y[1]||(y[1]=w=>b.value=!0)})])],64)):i(S)==="algolia"?(o(),l(C,{key:1},[n.value?(o(),A(i(t),{key:0,algolia:((P=i(a).search)==null?void 0:P.options)??i(a).algolia,onVnodeBeforeMount:y[2]||(y[2]=w=>r.value=!0)},null,8,["algolia"])):f("",!0),r.value?f("",!0):(o(),l("div",ao,[_(Pe,{onClick:u})]))],64)):f("",!0)])}}}),oo=m({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=L();return(t,a)=>i(e).socialLinks?(o(),A(oe,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),ro=g(oo,[["__scopeId","data-v-164c457f"]]),io=["href","rel","target"],lo={key:1},co={key:2},uo=m({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=L(),{hasSidebar:a}=D(),{currentLang:n}=Y(),r=$(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=$(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=$(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,b)=>(o(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(a)}])},[d("a",{class:"title",href:r.value??i(be)(i(n).link),rel:u.value,target:h.value},[c(p.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(o(),A(x,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):f("",!0),i(t).siteTitle?(o(),l("span",lo,V(i(t).siteTitle),1)):i(t).siteTitle===void 0?(o(),l("span",co,V(i(e).title),1)):f("",!0),c(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,io)],2))}}),po=g(uo,[["__scopeId","data-v-28a961f9"]]),vo={class:"items"},ho={class:"title"},fo=m({__name:"VPNavBarTranslations",setup(s){const{theme:e}=L(),{localeLinks:t,currentLang:a}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(a).label?(o(),A(Ae,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:v(()=>[d("div",vo,[d("p",ho,V(i(a).label),1),(o(!0),l(C,null,Q(i(t),u=>(o(),A(ne,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),mo=g(fo,[["__scopeId","data-v-c80d9ad0"]]),_o=s=>(B("data-v-40788ea0"),s=s(),E(),s),bo={class:"wrapper"},go={class:"container"},ko={class:"title"},$o={class:"content"},Ao={class:"content-body"},yo=_o(()=>d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1)),Po=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=we(),{hasSidebar:t}=D(),{frontmatter:a}=L(),n=N({});return Ve(()=>{n.value={"has-sidebar":t.value,home:a.value.layout==="home",top:e.value===0}}),(r,u)=>(o(),l("div",{class:T(["VPNavBar",n.value])},[d("div",bo,[d("div",go,[d("div",ko,[_(po,null,{"nav-bar-title-before":v(()=>[c(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",$o,[d("div",Ao,[c(r.$slots,"nav-bar-content-before",{},void 0,!0),_(no,{class:"search"}),_(Rn,{class:"menu"}),_(mo,{class:"translations"}),_(Ya,{class:"appearance"}),_(ro,{class:"social-links"}),_(Mn,{class:"extra"}),c(r.$slots,"nav-bar-content-after",{},void 0,!0),_(Wn,{class:"hamburger",active:r.isScreenOpen,onClick:u[0]||(u[0]=h=>r.$emit("toggle-screen"))},null,8,["active"])])])])]),yo],2))}}),So=g(Po,[["__scopeId","data-v-40788ea0"]]),Lo={key:0,class:"VPNavScreenAppearance"},Vo={class:"text"},Io=m({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=L();return(a,n)=>i(e).appearance&&i(e).appearance!=="force-dark"?(o(),l("div",Lo,[d("p",Vo,V(i(t).darkModeSwitchLabel||"Appearance"),1),_(ke)])):f("",!0)}}),No=g(Io,[["__scopeId","data-v-2b89f08b"]]),To=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=R("close-screen");return(t,a)=>(o(),A(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Co=g(To,[["__scopeId","data-v-27d04aeb"]]),wo=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=R("close-screen");return(t,a)=>(o(),A(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[H(V(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Oe=g(wo,[["__scopeId","data-v-7179dbb7"]]),Mo={class:"VPNavScreenMenuGroupSection"},Bo={key:0,class:"title"},Eo=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(o(),l("div",Mo,[e.text?(o(),l("p",Bo,V(e.text),1)):f("",!0),(o(!0),l(C,null,Q(e.items,a=>(o(),A(Oe,{key:a.text,item:a},null,8,["item"]))),128))]))}}),Qo=g(Eo,[["__scopeId","data-v-4b8941ac"]]),Fo=s=>(B("data-v-c9df2649"),s=s(),E(),s),Ho=["aria-controls","aria-expanded"],Wo=["innerHTML"],Do=Fo(()=>d("span",{class:"vpi-plus button-icon"},null,-1)),Uo=["id"],Oo={key:1,class:"group"},Go=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=N(!1),a=$(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,u)=>(o(),l("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":a.value,"aria-expanded":t.value,onClick:n},[d("span",{class:"button-text",innerHTML:r.text},null,8,Wo),Do],8,Ho),d("div",{id:a.value,class:"items"},[(o(!0),l(C,null,Q(r.items,h=>(o(),l(C,{key:h.text},["link"in h?(o(),l("div",{key:h.text,class:"item"},[_(Oe,{item:h},null,8,["item"])])):(o(),l("div",Oo,[_(Qo,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Uo)],2))}}),Ko=g(Go,[["__scopeId","data-v-c9df2649"]]),Jo={key:0,class:"VPNavScreenMenu"},jo=m({__name:"VPNavScreenMenu",setup(s){const{theme:e}=L();return(t,a)=>i(e).nav?(o(),l("nav",Jo,[(o(!0),l(C,null,Q(i(e).nav,n=>(o(),l(C,{key:n.text},["link"in n?(o(),A(Co,{key:0,item:n},null,8,["item"])):(o(),A(Ko,{key:1,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),zo=m({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=L();return(t,a)=>i(e).socialLinks?(o(),A(oe,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),Ge=s=>(B("data-v-362991c2"),s=s(),E(),s),Ro=Ge(()=>d("span",{class:"vpi-languages icon lang"},null,-1)),Zo=Ge(()=>d("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Yo={class:"list"},Xo=m({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),a=N(!1);function n(){a.value=!a.value}return(r,u)=>i(e).length&&i(t).label?(o(),l("div",{key:0,class:T(["VPNavScreenTranslations",{open:a.value}])},[d("button",{class:"title",onClick:n},[Ro,H(" "+V(i(t).label)+" ",1),Zo]),d("ul",Yo,[(o(!0),l(C,null,Q(i(e),h=>(o(),l("li",{key:h.link,class:"item"},[_(F,{class:"link",href:h.link},{default:v(()=>[H(V(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),qo=g(Xo,[["__scopeId","data-v-362991c2"]]),xo={class:"container"},er=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=N(null),t=Me(ae?document.body:null);return(a,n)=>(o(),A(he,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:v(()=>[a.open?(o(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",xo,[c(a.$slots,"nav-screen-content-before",{},void 0,!0),_(jo,{class:"menu"}),_(qo,{class:"translations"}),_(No,{class:"appearance"}),_(zo,{class:"social-links"}),c(a.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),tr=g(er,[["__scopeId","data-v-382f42e9"]]),sr={key:0,class:"VPNav"},ar=m({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:a}=Ha(),{frontmatter:n}=L(),r=$(()=>n.value.navbar!==!1);return _e("close-screen",t),ee(()=>{ae&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,h)=>r.value?(o(),l("header",sr,[_(So,{"is-screen-open":i(e),onToggleScreen:i(a)},{"nav-bar-title-before":v(()=>[c(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),_(tr,{open:i(e)},{"nav-screen-content-before":v(()=>[c(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),nr=g(ar,[["__scopeId","data-v-f1e365da"]]),Ke=s=>(B("data-v-2ea20db7"),s=s(),E(),s),or=["role","tabindex"],rr=Ke(()=>d("div",{class:"indicator"},null,-1)),ir=Ke(()=>d("span",{class:"vpi-chevron-right caret-icon"},null,-1)),lr=[ir],cr={key:1,class:"items"},ur=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:a,isLink:n,isActiveLink:r,hasActiveLink:u,hasChildren:h,toggle:p}=Nt($(()=>e.item)),b=$(()=>h.value?"section":"div"),S=$(()=>n.value?"a":"div"),k=$(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),y=$(()=>n.value?void 0:"button"),P=$(()=>[[`level-${e.depth}`],{collapsible:a.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":u.value}]);function w(I){"key"in I&&I.key!=="Enter"||!e.item.link&&p()}function M(){e.item.link&&p()}return(I,U)=>{const O=G("VPSidebarItem",!0);return o(),A(z(b.value),{class:T(["VPSidebarItem",P.value])},{default:v(()=>[I.item.text?(o(),l("div",X({key:0,class:"item",role:y.value},nt(I.item.items?{click:w,keydown:w}:{},!0),{tabindex:I.item.items&&0}),[rr,I.item.link?(o(),A(F,{key:0,tag:S.value,class:"link",href:I.item.link,rel:I.item.rel,target:I.item.target},{default:v(()=>[(o(),A(z(k.value),{class:"text",innerHTML:I.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(o(),A(z(k.value),{key:1,class:"text",innerHTML:I.item.text},null,8,["innerHTML"])),I.item.collapsed!=null&&I.item.items&&I.item.items.length?(o(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:ot(M,["enter"]),tabindex:"0"},lr,32)):f("",!0)],16,or)):f("",!0),I.item.items&&I.item.items.length?(o(),l("div",cr,[I.depth<5?(o(!0),l(C,{key:0},Q(I.item.items,j=>(o(),A(O,{key:j.text,item:j,depth:I.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),dr=g(ur,[["__scopeId","data-v-2ea20db7"]]),Je=s=>(B("data-v-ec846e01"),s=s(),E(),s),pr=Je(()=>d("div",{class:"curtain"},null,-1)),vr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},hr=Je(()=>d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),fr=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=D(),a=s,n=N(null),r=Me(ae?document.body:null);return W([a,n],()=>{var u;a.open?(r.value=!0,(u=n.value)==null||u.focus()):r.value=!1},{immediate:!0,flush:"post"}),(u,h)=>i(t)?(o(),l("aside",{key:0,class:T(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:n,onClick:h[0]||(h[0]=rt(()=>{},["stop"]))},[pr,d("nav",vr,[hr,c(u.$slots,"sidebar-nav-before",{},void 0,!0),(o(!0),l(C,null,Q(i(e),p=>(o(),l("div",{key:p.text,class:"group"},[_(dr,{item:p,depth:0},null,8,["item"])]))),128)),c(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),mr=g(fr,[["__scopeId","data-v-ec846e01"]]),_r=m({__name:"VPSkipLink",setup(s){const e=se(),t=N();W(()=>e.path,()=>t.value.focus());function a({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(o(),l(C,null,[d("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:a}," Skip to content ")],64))}}),br=g(_r,[["__scopeId","data-v-c3508ec8"]]),gr=m({__name:"Layout",setup(s){const{isOpen:e,open:t,close:a}=D(),n=se();W(()=>n.path,a),It(e,a);const{frontmatter:r}=L(),u=Be(),h=$(()=>!!u["home-hero-image"]);return _e("hero-image-slot-exists",h),(p,b)=>{const S=G("Content");return i(r).layout!==!1?(o(),l("div",{key:0,class:T(["Layout",i(r).pageClass])},[c(p.$slots,"layout-top",{},void 0,!0),_(br),_(vt,{class:"backdrop",show:i(e),onClick:i(a)},null,8,["show","onClick"]),_(nr,null,{"nav-bar-title-before":v(()=>[c(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[c(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),_(Fa,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),_(mr,{open:i(e)},{"sidebar-nav-before":v(()=>[c(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[c(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),_(_a,null,{"page-top":v(()=>[c(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[c(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[c(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[c(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[c(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),_(Aa),c(p.$slots,"layout-bottom",{},void 0,!0)],2)):(o(),A(S,{key:1}))}}}),kr=g(gr,[["__scopeId","data-v-a9a9e638"]]),$r={},Ar={class:"VPTeamPage"};function yr(s,e){return o(),l("div",Ar,[c(s.$slots,"default")])}const Pi=g($r,[["render",yr],["__scopeId","data-v-c2f8e101"]]),Pr={},Sr={class:"VPTeamPageTitle"},Lr={key:0,class:"title"},Vr={key:1,class:"lead"};function Ir(s,e){return o(),l("div",Sr,[s.$slots.title?(o(),l("h1",Lr,[c(s.$slots,"title",{},void 0,!0)])):f("",!0),s.$slots.lead?(o(),l("p",Vr,[c(s.$slots,"lead",{},void 0,!0)])):f("",!0)])}const Si=g(Pr,[["render",Ir],["__scopeId","data-v-e277e15c"]]),Nr={},Tr=s=>(B("data-v-d43bc49d"),s=s(),E(),s),Cr={class:"VPTeamPageSection"},wr={class:"title"},Mr=Tr(()=>d("div",{class:"title-line"},null,-1)),Br={key:0,class:"title-text"},Er={key:0,class:"lead"},Qr={key:1,class:"members"};function Fr(s,e){return o(),l("section",Cr,[d("div",wr,[Mr,s.$slots.title?(o(),l("h2",Br,[c(s.$slots,"title",{},void 0,!0)])):f("",!0)]),s.$slots.lead?(o(),l("p",Er,[c(s.$slots,"lead",{},void 0,!0)])):f("",!0),s.$slots.members?(o(),l("div",Qr,[c(s.$slots,"members",{},void 0,!0)])):f("",!0)])}const Li=g(Nr,[["render",Fr],["__scopeId","data-v-d43bc49d"]]),Hr=s=>(B("data-v-f9987cb6"),s=s(),E(),s),Wr={class:"profile"},Dr={class:"avatar"},Ur=["src","alt"],Or={class:"data"},Gr={class:"name"},Kr={key:0,class:"affiliation"},Jr={key:0,class:"title"},jr={key:1,class:"at"},zr=["innerHTML"],Rr={key:2,class:"links"},Zr={key:0,class:"sp"},Yr=Hr(()=>d("span",{class:"vpi-heart sp-icon"},null,-1)),Xr=m({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(s){return(e,t)=>(o(),l("article",{class:T(["VPTeamMembersItem",[e.size]])},[d("div",Wr,[d("figure",Dr,[d("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,Ur)]),d("div",Or,[d("h1",Gr,V(e.member.name),1),e.member.title||e.member.org?(o(),l("p",Kr,[e.member.title?(o(),l("span",Jr,V(e.member.title),1)):f("",!0),e.member.title&&e.member.org?(o(),l("span",jr," @ ")):f("",!0),e.member.org?(o(),A(F,{key:2,class:T(["org",{link:e.member.orgLink}]),href:e.member.orgLink,"no-icon":""},{default:v(()=>[H(V(e.member.org),1)]),_:1},8,["class","href"])):f("",!0)])):f("",!0),e.member.desc?(o(),l("p",{key:1,class:"desc",innerHTML:e.member.desc},null,8,zr)):f("",!0),e.member.links?(o(),l("div",Rr,[_(oe,{links:e.member.links},null,8,["links"])])):f("",!0)])]),e.member.sponsor?(o(),l("div",Zr,[_(F,{class:"sp-link",href:e.member.sponsor,"no-icon":""},{default:v(()=>[Yr,H(" "+V(e.member.actionText||"Sponsor"),1)]),_:1},8,["href"])])):f("",!0)],2))}}),qr=g(Xr,[["__scopeId","data-v-f9987cb6"]]),xr={class:"container"},ei=m({__name:"VPTeamMembers",props:{size:{default:"medium"},members:{}},setup(s){const e=s,t=$(()=>[e.size,`count-${e.members.length}`]);return(a,n)=>(o(),l("div",{class:T(["VPTeamMembers",t.value])},[d("div",xr,[(o(!0),l(C,null,Q(a.members,r=>(o(),l("div",{key:r.name,class:"item"},[_(qr,{size:a.size,member:r},null,8,["size","member"])]))),128))])],2))}}),Vi=g(ei,[["__scopeId","data-v-fba19bad"]]),Se={Layout:kr,enhanceApp:({app:s})=>{s.component("Badge",ut)}},ti={},si=d("br",null,null,-1),ai={style:{"text-align":"center"}},ni=it('

Read n-d array like-data

DiskArrays.jl

Get your chunks!

Named Dimensions

DimensionalData.jl

Select & Index!

Out of memory data

Zarr.jl

Chunkerd, compressed !

Rasterized spatial data

Rasters.jl

Read and manipulate !

Array-oriented data

NetCDF.jl

Scientific binary data.

Raster and vector data

ArchGDAL.jl

GDAL in Julia.

An interface for

GeoInterface.jl

geospatial data in Julia.

A higher level interface

GRIBDatasets.jl

for reading GRIB files.

Array-oriented data

NCDatasets.jl

Scientific binary data.

',9);function oi(s,e){const t=G("font");return o(),l(C,null,[si,d("h1",ai,[d("strong",null,[_(t,{color:"orange"},{default:v(()=>[H(" Package Ecosystem")]),_:1})])]),ni],64)}const ri=g(ti,[["render",oi]]),ii=s=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:a=>async(...n)=>{const r=a(...n),u=s.value;if(!u)return r;const h=u.offsetTop-e.scrollTop;return await Ce(),e.scrollTop=u.offsetTop-h,r}}},je="vitepress:tabSharedState",Z=typeof localStorage<"u"?localStorage:null,ze="vitepress:tabsSharedState",li=()=>{const s=Z==null?void 0:Z.getItem(ze);if(s)try{return JSON.parse(s)}catch{}return{}},ci=s=>{Z&&Z.setItem(ze,JSON.stringify(s))},ui=s=>{const e=lt({});W(()=>e.content,(t,a)=>{t&&a&&ci(t)},{deep:!0}),s.provide(je,e)},di=(s,e)=>{const t=R(je);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");J(()=>{t.content||(t.content=li())});const a=N(),n=$({get(){var p;const u=e.value,h=s.value;if(u){const b=(p=t.content)==null?void 0:p[u];if(b&&h.includes(b))return b}else{const b=a.value;if(b)return b}return h[0]},set(u){const h=e.value;h?t.content&&(t.content[h]=u):a.value=u}});return{selected:n,select:u=>{n.value=u}}};let Le=0;const pi=()=>(Le++,""+Le);function vi(){const s=Be();return $(()=>{var a;const t=(a=s.default)==null?void 0:a.call(s);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const Re="vitepress:tabSingleState",hi=s=>{_e(Re,s)},fi=()=>{const s=R(Re);if(!s)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return s},mi={class:"plugin-tabs"},_i=["id","aria-selected","aria-controls","tabindex","onClick"],bi=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(s){const e=s,t=vi(),{selected:a,select:n}=di(t,ct(e,"sharedStateKey")),r=N(),{stabilizeScrollPosition:u}=ii(r),h=u(n),p=N([]),b=k=>{var w;const y=t.value.indexOf(a.value);let P;k.key==="ArrowLeft"?P=y>=1?y-1:t.value.length-1:k.key==="ArrowRight"&&(P=y(o(),l("div",mi,[d("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:b},[(o(!0),l(C,null,Q(i(t),P=>(o(),l("button",{id:`tab-${P}-${i(S)}`,ref_for:!0,ref_key:"buttonRefs",ref:p,key:P,role:"tab",class:"plugin-tabs--tab","aria-selected":P===i(a),"aria-controls":`panel-${P}-${i(S)}`,tabindex:P===i(a)?0:-1,onClick:()=>i(h)(P)},V(P),9,_i))),128))],544),c(k.$slots,"default")]))}}),gi=["id","aria-labelledby"],ki=m({__name:"PluginTabsTab",props:{label:{}},setup(s){const{uid:e,selected:t}=fi();return(a,n)=>i(t)===a.label?(o(),l("div",{key:0,id:`panel-${a.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${a.label}-${i(e)}`},[c(a.$slots,"default",{},void 0,!0)],8,gi)):f("",!0)}}),$i=g(ki,[["__scopeId","data-v-9b0d03d2"]]),Ai=s=>{ui(s),s.component("PluginTabs",bi),s.component("PluginTabsTab",$i)},Ii={extends:Se,Layout(){return ye(Se.Layout,null,{"aside-ads-before":()=>ye(ri)})},enhanceApp({app:s,router:e,siteData:t}){Ai(s)}};export{Ii as R,Si as V,Vi as a,Li as b,Pi as c,Zn as d,L as u}; diff --git a/dev/assets/development_contribute.md.D7dJzz3q.js b/dev/assets/development_contribute.md.CI9jrpVX.js similarity index 97% rename from dev/assets/development_contribute.md.D7dJzz3q.js rename to dev/assets/development_contribute.md.CI9jrpVX.js index 8e3961ba..cda1f3a3 100644 --- a/dev/assets/development_contribute.md.D7dJzz3q.js +++ b/dev/assets/development_contribute.md.CI9jrpVX.js @@ -1,3 +1,3 @@ -import{_ as e,c as s,o as t,a3 as a}from"./chunks/framework.BjKsQEKQ.js";const b=JSON.parse('{"title":"Contribute to YAXArrays.jl","description":"","frontmatter":{},"headers":[],"relativePath":"development/contribute.md","filePath":"development/contribute.md","lastUpdated":null}'),i={name:"development/contribute.md"},l=a(`

Contribute to YAXArrays.jl

Pull requests and bug reports are always welcome at the YAXArrays.jl GitHub repository.

Contribute to Documentation

Contributing with examples can be done by first creating a new file example here

new file

  • your_new_file.md at docs/src/UserGuide/

Once this is done you need to add a new entry here at the appropriate level.

add entry to docs

Your new entry should look like:

  • { text: 'Your title example', link: '/UserGuide/your_new_file.md' }

Build docs locally

If you want to take a look at the docs locally before doing a PR follow the next steps:

Install the dependencies in your system, locate yourself at the docs level folder, then do

sh
npm i

Then simply go to your docs env and activate it, i.e.

sh
docs> julia
+import{_ as e,c as s,o as t,a3 as a}from"./chunks/framework.D-wbpLqx.js";const b=JSON.parse('{"title":"Contribute to YAXArrays.jl","description":"","frontmatter":{},"headers":[],"relativePath":"development/contribute.md","filePath":"development/contribute.md","lastUpdated":null}'),i={name:"development/contribute.md"},l=a(`

Contribute to YAXArrays.jl

Pull requests and bug reports are always welcome at the YAXArrays.jl GitHub repository.

Contribute to Documentation

Contributing with examples can be done by first creating a new file example here

new file

  • your_new_file.md at docs/src/UserGuide/

Once this is done you need to add a new entry here at the appropriate level.

add entry to docs

Your new entry should look like:

  • { text: 'Your title example', link: '/UserGuide/your_new_file.md' }

Build docs locally

If you want to take a look at the docs locally before doing a PR follow the next steps:

Install the dependencies in your system, locate yourself at the docs level folder, then do

sh
npm i

Then simply go to your docs env and activate it, i.e.

sh
docs> julia
 julia> ]
 pkg> activate .

Next, run the scripts. Generate files and build docs by running:

sh
include("make.jl")

Now go to your terminal in the same path docs> and run:

sh
npm run docs:dev

This should ouput http://localhost:5173/YAXArrays.jl/, copy/paste this into your browser and you are all set.

`,18),o=[l];function n(r,p,d,h,c,u){return t(),s("div",null,o)}const y=e(i,[["render",n]]);export{b as __pageData,y as default}; diff --git a/dev/assets/development_contribute.md.D7dJzz3q.lean.js b/dev/assets/development_contribute.md.CI9jrpVX.lean.js similarity index 71% rename from dev/assets/development_contribute.md.D7dJzz3q.lean.js rename to dev/assets/development_contribute.md.CI9jrpVX.lean.js index e2eb04a1..07f5fcbd 100644 --- a/dev/assets/development_contribute.md.D7dJzz3q.lean.js +++ b/dev/assets/development_contribute.md.CI9jrpVX.lean.js @@ -1 +1 @@ -import{_ as e,c as s,o as t,a3 as a}from"./chunks/framework.BjKsQEKQ.js";const b=JSON.parse('{"title":"Contribute to YAXArrays.jl","description":"","frontmatter":{},"headers":[],"relativePath":"development/contribute.md","filePath":"development/contribute.md","lastUpdated":null}'),i={name:"development/contribute.md"},l=a("",18),o=[l];function n(r,p,d,h,c,u){return t(),s("div",null,o)}const y=e(i,[["render",n]]);export{b as __pageData,y as default}; +import{_ as e,c as s,o as t,a3 as a}from"./chunks/framework.D-wbpLqx.js";const b=JSON.parse('{"title":"Contribute to YAXArrays.jl","description":"","frontmatter":{},"headers":[],"relativePath":"development/contribute.md","filePath":"development/contribute.md","lastUpdated":null}'),i={name:"development/contribute.md"},l=a("",18),o=[l];function n(r,p,d,h,c,u){return t(),s("div",null,o)}const y=e(i,[["render",n]]);export{b as __pageData,y as default}; diff --git a/dev/assets/development_contributors.md.B4go3-iO.js b/dev/assets/development_contributors.md.d02c5wBD.js similarity index 97% rename from dev/assets/development_contributors.md.B4go3-iO.js rename to dev/assets/development_contributors.md.d02c5wBD.js index c136f257..96c92bc5 100644 --- a/dev/assets/development_contributors.md.B4go3-iO.js +++ b/dev/assets/development_contributors.md.d02c5wBD.js @@ -1 +1 @@ -import{V as i,a as c,b as h,c as u}from"./chunks/theme.C0huFlU1.js";import{D as l,c as m,I as s,w as e,k as r,o as g,a,j as t}from"./chunks/framework.BjKsQEKQ.js";const b=t("strong",null,"Current core contributors ",-1),p=t("br",null,null,-1),v={align:"justify"},_=t("br",null,null,-1),f=t("div",{class:"row"},[t("a",{href:"https://github.com/meggart",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2539563?v=4"})]),t("a",{href:"https://github.com/felixcremer",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/17124431?v=4"})]),t("a",{href:"https://github.com/lazarusA",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19525261?v=4"})]),t("a",{href:"https://github.com/gdkrmr",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/12512930?v=4"})]),t("a",{href:"https://github.com/apps/github-actions",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/15368?v=4"})]),t("a",{href:"https://github.com/pdimens",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19176506?v=4"})]),t("a",{href:"https://github.com/twinGu",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/29449917?v=4"})]),t("a",{href:"https://github.com/dpabon",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/13040959?v=4"})]),t("a",{href:"https://github.com/Qfl3x",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/20775896?v=4"})]),t("a",{href:"https://github.com/kongdd",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/9815742?v=4"})]),t("a",{href:"https://github.com/MartinuzziFrancesco",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10376688?v=4"})]),t("a",{href:"https://github.com/Sonicious",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/16307399?v=4"})]),t("a",{href:"https://github.com/rafaqz",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2534009?v=4"})]),t("a",{href:"https://github.com/danlooo",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/5780565?v=4"})]),t("a",{href:"https://github.com/MarkusZehner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/56972144?v=4"})]),t("a",{href:"https://github.com/Balinus",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/3630311?v=4"})]),t("a",{href:"https://github.com/singularitti",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/25192197?v=4"})]),t("a",{href:"https://github.com/ckrich",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/28727495?v=4"})]),t("a",{href:"https://github.com/apps/femtocleaner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/4123?v=4"})]),t("a",{href:"https://github.com/ikselven",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10441332?v=4"})]),t("a",{href:"https://github.com/linamaes",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/7131773?v=4"})])],-1),C=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"development/contributors.md","filePath":"development/contributors.md","lastUpdated":null}'),d={name:"development/contributors.md"},P=Object.assign(d,{setup(k){const o=[{avatar:"https://www.bgc-jena.mpg.de/employee_images/121366-1667825290?t=eyJ3aWR0aCI6MjEzLCJoZWlnaHQiOjI3NCwiZml0IjoiY3JvcCIsImZpbGVfZXh0ZW5zaW9uIjoid2VicCIsInF1YWxpdHkiOjg2fQ%3D%3D--3e1d41ff4b1ea8928e6734bc473242a90f797dea",name:"Fabian Gans",title:"Geoscientific Programmer",links:[{icon:"github",link:"https://github.com/meggart"}]},{avatar:"https://avatars.githubusercontent.com/u/17124431?v=4",name:"Felix Cremer",title:"PhD Candidate in Remote Sensing",links:[{icon:"github",link:"https://github.com/felixcremer"}]},{avatar:"https://avatars.githubusercontent.com/u/2534009?v=4",name:"Rafael Schouten",title:"Spatial/ecological modelling",links:[{icon:"github",link:"https://github.com/rafaqz"}]},{avatar:"https://pbs.twimg.com/profile_images/1727075196962574336/zB09YH0s_400x400.jpg",name:"Lazaro Alonso",title:"Scientist. Data Visualization",links:[{icon:"github",link:"https://github.com/lazarusA"},{icon:"x",link:"https://twitter.com/LazarusAlon"},{icon:"linkedin",link:"https://www.linkedin.com/in/lazaro-alonso/"},{icon:"mastodon",link:"https://julialang.social/@LazaroAlonso"}]}];return(z,j)=>{const n=l("font");return g(),m("div",null,[s(r(u),null,{default:e(()=>[s(r(i),null,{title:e(()=>[a("Contributors")]),lead:e(()=>[b,a(),p,t("div",v,[a(" They have taking the lead for the ongoing organizational maintenance and technical direction of "),s(n,{color:"orange"},{default:e(()=>[a("YAXArrays.jl")]),_:1}),a(", "),s(n,{color:"orange"},{default:e(()=>[a("DiskArrays.jl")]),_:1}),a(" and "),s(n,{color:"orange"},{default:e(()=>[a("DimensionalData.jl")]),_:1}),a(". ")])]),_:1}),s(r(c),{size:"small",members:o}),s(r(h),null,{title:e(()=>[a("Our valuable contributors")]),lead:e(()=>[a(" We appreciate all contributions from the Julia community so that this ecosystem can thrive."),_]),members:e(()=>[f]),_:1})]),_:1})])}}});export{C as __pageData,P as default}; +import{V as i,a as c,b as h,c as u}from"./chunks/theme.BRL7lqyv.js";import{D as l,c as m,I as s,w as e,k as r,o as g,a,j as t}from"./chunks/framework.D-wbpLqx.js";const b=t("strong",null,"Current core contributors ",-1),p=t("br",null,null,-1),v={align:"justify"},_=t("br",null,null,-1),f=t("div",{class:"row"},[t("a",{href:"https://github.com/meggart",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2539563?v=4"})]),t("a",{href:"https://github.com/felixcremer",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/17124431?v=4"})]),t("a",{href:"https://github.com/lazarusA",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19525261?v=4"})]),t("a",{href:"https://github.com/gdkrmr",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/12512930?v=4"})]),t("a",{href:"https://github.com/apps/github-actions",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/15368?v=4"})]),t("a",{href:"https://github.com/pdimens",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19176506?v=4"})]),t("a",{href:"https://github.com/twinGu",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/29449917?v=4"})]),t("a",{href:"https://github.com/dpabon",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/13040959?v=4"})]),t("a",{href:"https://github.com/Qfl3x",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/20775896?v=4"})]),t("a",{href:"https://github.com/kongdd",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/9815742?v=4"})]),t("a",{href:"https://github.com/MartinuzziFrancesco",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10376688?v=4"})]),t("a",{href:"https://github.com/Sonicious",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/16307399?v=4"})]),t("a",{href:"https://github.com/rafaqz",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2534009?v=4"})]),t("a",{href:"https://github.com/danlooo",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/5780565?v=4"})]),t("a",{href:"https://github.com/MarkusZehner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/56972144?v=4"})]),t("a",{href:"https://github.com/Balinus",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/3630311?v=4"})]),t("a",{href:"https://github.com/singularitti",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/25192197?v=4"})]),t("a",{href:"https://github.com/ckrich",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/28727495?v=4"})]),t("a",{href:"https://github.com/apps/femtocleaner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/4123?v=4"})]),t("a",{href:"https://github.com/ikselven",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10441332?v=4"})]),t("a",{href:"https://github.com/linamaes",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/7131773?v=4"})])],-1),C=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"development/contributors.md","filePath":"development/contributors.md","lastUpdated":null}'),d={name:"development/contributors.md"},P=Object.assign(d,{setup(k){const o=[{avatar:"https://www.bgc-jena.mpg.de/employee_images/121366-1667825290?t=eyJ3aWR0aCI6MjEzLCJoZWlnaHQiOjI3NCwiZml0IjoiY3JvcCIsImZpbGVfZXh0ZW5zaW9uIjoid2VicCIsInF1YWxpdHkiOjg2fQ%3D%3D--3e1d41ff4b1ea8928e6734bc473242a90f797dea",name:"Fabian Gans",title:"Geoscientific Programmer",links:[{icon:"github",link:"https://github.com/meggart"}]},{avatar:"https://avatars.githubusercontent.com/u/17124431?v=4",name:"Felix Cremer",title:"PhD Candidate in Remote Sensing",links:[{icon:"github",link:"https://github.com/felixcremer"}]},{avatar:"https://avatars.githubusercontent.com/u/2534009?v=4",name:"Rafael Schouten",title:"Spatial/ecological modelling",links:[{icon:"github",link:"https://github.com/rafaqz"}]},{avatar:"https://pbs.twimg.com/profile_images/1727075196962574336/zB09YH0s_400x400.jpg",name:"Lazaro Alonso",title:"Scientist. Data Visualization",links:[{icon:"github",link:"https://github.com/lazarusA"},{icon:"x",link:"https://twitter.com/LazarusAlon"},{icon:"linkedin",link:"https://www.linkedin.com/in/lazaro-alonso/"},{icon:"mastodon",link:"https://julialang.social/@LazaroAlonso"}]}];return(z,j)=>{const n=l("font");return g(),m("div",null,[s(r(u),null,{default:e(()=>[s(r(i),null,{title:e(()=>[a("Contributors")]),lead:e(()=>[b,a(),p,t("div",v,[a(" They have taking the lead for the ongoing organizational maintenance and technical direction of "),s(n,{color:"orange"},{default:e(()=>[a("YAXArrays.jl")]),_:1}),a(", "),s(n,{color:"orange"},{default:e(()=>[a("DiskArrays.jl")]),_:1}),a(" and "),s(n,{color:"orange"},{default:e(()=>[a("DimensionalData.jl")]),_:1}),a(". ")])]),_:1}),s(r(c),{size:"small",members:o}),s(r(h),null,{title:e(()=>[a("Our valuable contributors")]),lead:e(()=>[a(" We appreciate all contributions from the Julia community so that this ecosystem can thrive."),_]),members:e(()=>[f]),_:1})]),_:1})])}}});export{C as __pageData,P as default}; diff --git a/dev/assets/development_contributors.md.B4go3-iO.lean.js b/dev/assets/development_contributors.md.d02c5wBD.lean.js similarity index 97% rename from dev/assets/development_contributors.md.B4go3-iO.lean.js rename to dev/assets/development_contributors.md.d02c5wBD.lean.js index c136f257..96c92bc5 100644 --- a/dev/assets/development_contributors.md.B4go3-iO.lean.js +++ b/dev/assets/development_contributors.md.d02c5wBD.lean.js @@ -1 +1 @@ -import{V as i,a as c,b as h,c as u}from"./chunks/theme.C0huFlU1.js";import{D as l,c as m,I as s,w as e,k as r,o as g,a,j as t}from"./chunks/framework.BjKsQEKQ.js";const b=t("strong",null,"Current core contributors ",-1),p=t("br",null,null,-1),v={align:"justify"},_=t("br",null,null,-1),f=t("div",{class:"row"},[t("a",{href:"https://github.com/meggart",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2539563?v=4"})]),t("a",{href:"https://github.com/felixcremer",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/17124431?v=4"})]),t("a",{href:"https://github.com/lazarusA",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19525261?v=4"})]),t("a",{href:"https://github.com/gdkrmr",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/12512930?v=4"})]),t("a",{href:"https://github.com/apps/github-actions",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/15368?v=4"})]),t("a",{href:"https://github.com/pdimens",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19176506?v=4"})]),t("a",{href:"https://github.com/twinGu",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/29449917?v=4"})]),t("a",{href:"https://github.com/dpabon",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/13040959?v=4"})]),t("a",{href:"https://github.com/Qfl3x",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/20775896?v=4"})]),t("a",{href:"https://github.com/kongdd",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/9815742?v=4"})]),t("a",{href:"https://github.com/MartinuzziFrancesco",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10376688?v=4"})]),t("a",{href:"https://github.com/Sonicious",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/16307399?v=4"})]),t("a",{href:"https://github.com/rafaqz",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2534009?v=4"})]),t("a",{href:"https://github.com/danlooo",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/5780565?v=4"})]),t("a",{href:"https://github.com/MarkusZehner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/56972144?v=4"})]),t("a",{href:"https://github.com/Balinus",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/3630311?v=4"})]),t("a",{href:"https://github.com/singularitti",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/25192197?v=4"})]),t("a",{href:"https://github.com/ckrich",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/28727495?v=4"})]),t("a",{href:"https://github.com/apps/femtocleaner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/4123?v=4"})]),t("a",{href:"https://github.com/ikselven",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10441332?v=4"})]),t("a",{href:"https://github.com/linamaes",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/7131773?v=4"})])],-1),C=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"development/contributors.md","filePath":"development/contributors.md","lastUpdated":null}'),d={name:"development/contributors.md"},P=Object.assign(d,{setup(k){const o=[{avatar:"https://www.bgc-jena.mpg.de/employee_images/121366-1667825290?t=eyJ3aWR0aCI6MjEzLCJoZWlnaHQiOjI3NCwiZml0IjoiY3JvcCIsImZpbGVfZXh0ZW5zaW9uIjoid2VicCIsInF1YWxpdHkiOjg2fQ%3D%3D--3e1d41ff4b1ea8928e6734bc473242a90f797dea",name:"Fabian Gans",title:"Geoscientific Programmer",links:[{icon:"github",link:"https://github.com/meggart"}]},{avatar:"https://avatars.githubusercontent.com/u/17124431?v=4",name:"Felix Cremer",title:"PhD Candidate in Remote Sensing",links:[{icon:"github",link:"https://github.com/felixcremer"}]},{avatar:"https://avatars.githubusercontent.com/u/2534009?v=4",name:"Rafael Schouten",title:"Spatial/ecological modelling",links:[{icon:"github",link:"https://github.com/rafaqz"}]},{avatar:"https://pbs.twimg.com/profile_images/1727075196962574336/zB09YH0s_400x400.jpg",name:"Lazaro Alonso",title:"Scientist. Data Visualization",links:[{icon:"github",link:"https://github.com/lazarusA"},{icon:"x",link:"https://twitter.com/LazarusAlon"},{icon:"linkedin",link:"https://www.linkedin.com/in/lazaro-alonso/"},{icon:"mastodon",link:"https://julialang.social/@LazaroAlonso"}]}];return(z,j)=>{const n=l("font");return g(),m("div",null,[s(r(u),null,{default:e(()=>[s(r(i),null,{title:e(()=>[a("Contributors")]),lead:e(()=>[b,a(),p,t("div",v,[a(" They have taking the lead for the ongoing organizational maintenance and technical direction of "),s(n,{color:"orange"},{default:e(()=>[a("YAXArrays.jl")]),_:1}),a(", "),s(n,{color:"orange"},{default:e(()=>[a("DiskArrays.jl")]),_:1}),a(" and "),s(n,{color:"orange"},{default:e(()=>[a("DimensionalData.jl")]),_:1}),a(". ")])]),_:1}),s(r(c),{size:"small",members:o}),s(r(h),null,{title:e(()=>[a("Our valuable contributors")]),lead:e(()=>[a(" We appreciate all contributions from the Julia community so that this ecosystem can thrive."),_]),members:e(()=>[f]),_:1})]),_:1})])}}});export{C as __pageData,P as default}; +import{V as i,a as c,b as h,c as u}from"./chunks/theme.BRL7lqyv.js";import{D as l,c as m,I as s,w as e,k as r,o as g,a,j as t}from"./chunks/framework.D-wbpLqx.js";const b=t("strong",null,"Current core contributors ",-1),p=t("br",null,null,-1),v={align:"justify"},_=t("br",null,null,-1),f=t("div",{class:"row"},[t("a",{href:"https://github.com/meggart",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2539563?v=4"})]),t("a",{href:"https://github.com/felixcremer",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/17124431?v=4"})]),t("a",{href:"https://github.com/lazarusA",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19525261?v=4"})]),t("a",{href:"https://github.com/gdkrmr",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/12512930?v=4"})]),t("a",{href:"https://github.com/apps/github-actions",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/15368?v=4"})]),t("a",{href:"https://github.com/pdimens",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19176506?v=4"})]),t("a",{href:"https://github.com/twinGu",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/29449917?v=4"})]),t("a",{href:"https://github.com/dpabon",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/13040959?v=4"})]),t("a",{href:"https://github.com/Qfl3x",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/20775896?v=4"})]),t("a",{href:"https://github.com/kongdd",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/9815742?v=4"})]),t("a",{href:"https://github.com/MartinuzziFrancesco",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10376688?v=4"})]),t("a",{href:"https://github.com/Sonicious",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/16307399?v=4"})]),t("a",{href:"https://github.com/rafaqz",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2534009?v=4"})]),t("a",{href:"https://github.com/danlooo",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/5780565?v=4"})]),t("a",{href:"https://github.com/MarkusZehner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/56972144?v=4"})]),t("a",{href:"https://github.com/Balinus",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/3630311?v=4"})]),t("a",{href:"https://github.com/singularitti",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/25192197?v=4"})]),t("a",{href:"https://github.com/ckrich",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/28727495?v=4"})]),t("a",{href:"https://github.com/apps/femtocleaner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/4123?v=4"})]),t("a",{href:"https://github.com/ikselven",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10441332?v=4"})]),t("a",{href:"https://github.com/linamaes",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/7131773?v=4"})])],-1),C=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"development/contributors.md","filePath":"development/contributors.md","lastUpdated":null}'),d={name:"development/contributors.md"},P=Object.assign(d,{setup(k){const o=[{avatar:"https://www.bgc-jena.mpg.de/employee_images/121366-1667825290?t=eyJ3aWR0aCI6MjEzLCJoZWlnaHQiOjI3NCwiZml0IjoiY3JvcCIsImZpbGVfZXh0ZW5zaW9uIjoid2VicCIsInF1YWxpdHkiOjg2fQ%3D%3D--3e1d41ff4b1ea8928e6734bc473242a90f797dea",name:"Fabian Gans",title:"Geoscientific Programmer",links:[{icon:"github",link:"https://github.com/meggart"}]},{avatar:"https://avatars.githubusercontent.com/u/17124431?v=4",name:"Felix Cremer",title:"PhD Candidate in Remote Sensing",links:[{icon:"github",link:"https://github.com/felixcremer"}]},{avatar:"https://avatars.githubusercontent.com/u/2534009?v=4",name:"Rafael Schouten",title:"Spatial/ecological modelling",links:[{icon:"github",link:"https://github.com/rafaqz"}]},{avatar:"https://pbs.twimg.com/profile_images/1727075196962574336/zB09YH0s_400x400.jpg",name:"Lazaro Alonso",title:"Scientist. Data Visualization",links:[{icon:"github",link:"https://github.com/lazarusA"},{icon:"x",link:"https://twitter.com/LazarusAlon"},{icon:"linkedin",link:"https://www.linkedin.com/in/lazaro-alonso/"},{icon:"mastodon",link:"https://julialang.social/@LazaroAlonso"}]}];return(z,j)=>{const n=l("font");return g(),m("div",null,[s(r(u),null,{default:e(()=>[s(r(i),null,{title:e(()=>[a("Contributors")]),lead:e(()=>[b,a(),p,t("div",v,[a(" They have taking the lead for the ongoing organizational maintenance and technical direction of "),s(n,{color:"orange"},{default:e(()=>[a("YAXArrays.jl")]),_:1}),a(", "),s(n,{color:"orange"},{default:e(()=>[a("DiskArrays.jl")]),_:1}),a(" and "),s(n,{color:"orange"},{default:e(()=>[a("DimensionalData.jl")]),_:1}),a(". ")])]),_:1}),s(r(c),{size:"small",members:o}),s(r(h),null,{title:e(()=>[a("Our valuable contributors")]),lead:e(()=>[a(" We appreciate all contributions from the Julia community so that this ecosystem can thrive."),_]),members:e(()=>[f]),_:1})]),_:1})])}}});export{C as __pageData,P as default}; diff --git a/dev/assets/faaihzc.CdZCKlB5.jpeg b/dev/assets/faaihzc.CdZCKlB5.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..bf3e78005169e133c88eadd0f55326952407d4a4 GIT binary patch literal 111013 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

Getting Started

Installation

Install Julia v1.10 or above. YAXArrays.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing

julia
pkg> add YAXArrays

Alternatively, you can also do

julia
import Pkg; Pkg.add("YAXArrays")

Quickstart

Create a simple array from random numbers given the size of each dimension or axis:

julia
using YAXArrays
+import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"get_started.md","filePath":"get_started.md","lastUpdated":null}'),t={name:"get_started.md"},p=n(`

Getting Started

Installation

Install Julia v1.10 or above. YAXArrays.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing

julia
pkg> add YAXArrays

Alternatively, you can also do

julia
import Pkg; Pkg.add("YAXArrays")

Quickstart

Create a simple array from random numbers given the size of each dimension or axis:

julia
using YAXArrays
 
 a = YAXArray(rand(2,3))
╭─────────────────────────╮
 │ 2×3 YAXArray{Float64,2} │
@@ -44,13 +44,13 @@ import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c
 ├─────────────────────────────────────────────────────────────────── file size ┤ 
   file size: 46.88 KB
 └──────────────────────────────────────────────────────────────────────────────┘

Get the temperature map at the first point in time:

julia
a2[variable=At("temperature"), time=1].data
10×15 view(::Array{Float64, 4}, 1, :, :, 1) with eltype Float64:
- 0.319187   0.126393  0.925054   0.225332  …  0.490122  0.905329  0.0418355
- 0.798744   0.922499  0.573372   0.899075     0.505695  0.350962  0.123095
- 0.469717   0.268189  0.333144   0.613394     0.755163  0.111471  0.774567
- 0.412199   0.542407  0.482263   0.529028     0.180951  0.328423  0.225005
- 0.0848458  0.205284  0.0551688  0.654457     0.738573  0.953778  0.998595
- 0.342985   0.349885  0.97348    0.687628  …  0.478473  0.39648   0.554471
- 0.504538   0.856657  0.237218   0.543519     0.177355  0.405714  0.445186
- 0.89959    0.824722  0.430667   0.553825     0.238446  0.404461  0.539413
- 0.204431   0.213285  0.741287   0.608885     0.763978  0.481372  0.672454
- 0.409986   0.697849  0.785657   0.47049      0.835401  0.465621  0.272561

Get more details at the select page

Updates

TIP

The Julia Compiler is always improving. As such, we recommend using the latest stable version of Julia.

You may check the installed version with:

julia
pkg> st YAXArrays

INFO

With YAXArrays.jl 0.5 we switched the underlying data type to be a subtype of the DimensionalData.jl types. Therefore the indexing with named dimensions changed to the DimensionalData syntax. See the DimensionalData.jl docs.

`,22),e=[p];function l(h,k,r,d,o,g){return i(),a("div",null,e)}const y=s(t,[["render",l]]);export{c as __pageData,y as default}; + 0.50609 0.065512 0.459038 … 0.303697 0.0169226 0.989932 + 0.839279 0.331562 0.675077 0.927544 0.930779 0.904235 + 0.227097 0.259052 0.661043 0.0827526 0.810778 0.338979 + 0.858072 0.518845 0.0289642 0.572332 0.996066 0.572372 + 0.666392 0.233383 0.271444 0.244829 0.795953 0.161647 + 0.244735 0.0105681 0.818591 … 0.00883826 0.610474 0.602397 + 0.0393444 0.916561 0.716007 0.785236 0.844823 0.145791 + 0.573349 0.629512 0.270374 0.0836145 0.445214 0.648612 + 0.709112 0.088841 0.570218 0.28046 0.0833081 0.688623 + 0.308482 0.126927 0.0170527 0.905464 0.979487 0.207205

Get more details at the select page

Updates

TIP

The Julia Compiler is always improving. As such, we recommend using the latest stable version of Julia.

You may check the installed version with:

julia
pkg> st YAXArrays

INFO

With YAXArrays.jl 0.5 we switched the underlying data type to be a subtype of the DimensionalData.jl types. Therefore the indexing with named dimensions changed to the DimensionalData syntax. See the DimensionalData.jl docs.

`,22),e=[p];function l(h,k,r,d,o,g){return i(),a("div",null,e)}const y=s(t,[["render",l]]);export{c as __pageData,y as default}; diff --git a/dev/assets/get_started.md.BEfcxfoL.lean.js b/dev/assets/get_started.md.CItvjJHa.lean.js similarity index 68% rename from dev/assets/get_started.md.BEfcxfoL.lean.js rename to dev/assets/get_started.md.CItvjJHa.lean.js index 6f41f245..7967ad8b 100644 --- a/dev/assets/get_started.md.BEfcxfoL.lean.js +++ b/dev/assets/get_started.md.CItvjJHa.lean.js @@ -1 +1 @@ -import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"get_started.md","filePath":"get_started.md","lastUpdated":null}'),t={name:"get_started.md"},p=n("",22),e=[p];function l(h,k,r,d,o,g){return i(),a("div",null,e)}const y=s(t,[["render",l]]);export{c as __pageData,y as default}; +import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.D-wbpLqx.js";const c=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"get_started.md","filePath":"get_started.md","lastUpdated":null}'),t={name:"get_started.md"},p=n("",22),e=[p];function l(h,k,r,d,o,g){return i(),a("div",null,e)}const y=s(t,[["render",l]]);export{c as __pageData,y as default}; diff --git a/dev/assets/index.md.mbv0qPr7.js b/dev/assets/index.md.CZNzl0c2.js similarity index 96% rename from dev/assets/index.md.mbv0qPr7.js rename to dev/assets/index.md.CZNzl0c2.js index da472d54..da0a0889 100644 --- a/dev/assets/index.md.mbv0qPr7.js +++ b/dev/assets/index.md.CZNzl0c2.js @@ -1 +1 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BjKsQEKQ.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"YAXArrays.jl","text":"Yet another xarray-like Julia package","tagline":"A package for operating on out-of-core labeled arrays, based on stores like NetCDF, Zarr or GDAL.","image":{"src":"/logo.png","alt":"VitePress"},"actions":[{"theme":"alt","text":"Get Started","link":"/get_started"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaDataCubes/YAXArrays.jl"},{"theme":"alt","text":"API reference","link":"/api"}]},"features":[{"title":"Flexible I/O capabilities","details":"Open and operate on NetCDF and Zarr datasets directly. Or bring in data from other sources with ArchGDAL.jl, GRIBDatasets.jl, GeoJSON.jl, HDF5.jl, Shapefile.jl, GeoParquet.jl, etc.","link":"/UserGuide/openZarr"},{"title":"Interoperability","details":"Well integrated with Julia's ecosystem, i.e., distributed operations are native. And plotting with Makie.jl is well supported."},{"title":"Named dimensions and GroupBy(in memory)","details":"Apply operations over named dimensions, select values by labels and integers as well as efficient split-apply-combine operations with groupby via DimensionalData.jl.","link":"/UserGuide/group_by"},{"title":"Efficiency","details":"Efficient mapslices(x) and mapCube operations on huge multiple arrays, optimized for high-latency data access (object storage, compressed datasets)."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}`),o={name:"index.md"};function i(r,n,l,s,d,c){return a(),t("div")}const m=e(o,[["render",i]]);export{f as __pageData,m as default}; +import{_ as e,c as t,o as a}from"./chunks/framework.D-wbpLqx.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"YAXArrays.jl","text":"Yet another xarray-like Julia package","tagline":"A package for operating on out-of-core labeled arrays, based on stores like NetCDF, Zarr or GDAL.","image":{"src":"/logo.png","alt":"VitePress"},"actions":[{"theme":"alt","text":"Get Started","link":"/get_started"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaDataCubes/YAXArrays.jl"},{"theme":"alt","text":"API reference","link":"/api"}]},"features":[{"title":"Flexible I/O capabilities","details":"Open and operate on NetCDF and Zarr datasets directly. Or bring in data from other sources with ArchGDAL.jl, GRIBDatasets.jl, GeoJSON.jl, HDF5.jl, Shapefile.jl, GeoParquet.jl, etc.","link":"/UserGuide/openZarr"},{"title":"Interoperability","details":"Well integrated with Julia's ecosystem, i.e., distributed operations are native. And plotting with Makie.jl is well supported."},{"title":"Named dimensions and GroupBy(in memory)","details":"Apply operations over named dimensions, select values by labels and integers as well as efficient split-apply-combine operations with groupby via DimensionalData.jl.","link":"/UserGuide/group_by"},{"title":"Efficiency","details":"Efficient mapslices(x) and mapCube operations on huge multiple arrays, optimized for high-latency data access (object storage, compressed datasets)."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}`),o={name:"index.md"};function i(r,n,l,s,d,c){return a(),t("div")}const m=e(o,[["render",i]]);export{f as __pageData,m as default}; diff --git a/dev/assets/index.md.mbv0qPr7.lean.js b/dev/assets/index.md.CZNzl0c2.lean.js similarity index 96% rename from dev/assets/index.md.mbv0qPr7.lean.js rename to dev/assets/index.md.CZNzl0c2.lean.js index da472d54..da0a0889 100644 --- a/dev/assets/index.md.mbv0qPr7.lean.js +++ b/dev/assets/index.md.CZNzl0c2.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BjKsQEKQ.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"YAXArrays.jl","text":"Yet another xarray-like Julia package","tagline":"A package for operating on out-of-core labeled arrays, based on stores like NetCDF, Zarr or GDAL.","image":{"src":"/logo.png","alt":"VitePress"},"actions":[{"theme":"alt","text":"Get Started","link":"/get_started"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaDataCubes/YAXArrays.jl"},{"theme":"alt","text":"API reference","link":"/api"}]},"features":[{"title":"Flexible I/O capabilities","details":"Open and operate on NetCDF and Zarr datasets directly. Or bring in data from other sources with ArchGDAL.jl, GRIBDatasets.jl, GeoJSON.jl, HDF5.jl, Shapefile.jl, GeoParquet.jl, etc.","link":"/UserGuide/openZarr"},{"title":"Interoperability","details":"Well integrated with Julia's ecosystem, i.e., distributed operations are native. And plotting with Makie.jl is well supported."},{"title":"Named dimensions and GroupBy(in memory)","details":"Apply operations over named dimensions, select values by labels and integers as well as efficient split-apply-combine operations with groupby via DimensionalData.jl.","link":"/UserGuide/group_by"},{"title":"Efficiency","details":"Efficient mapslices(x) and mapCube operations on huge multiple arrays, optimized for high-latency data access (object storage, compressed datasets)."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}`),o={name:"index.md"};function i(r,n,l,s,d,c){return a(),t("div")}const m=e(o,[["render",i]]);export{f as __pageData,m as default}; +import{_ as e,c as t,o as a}from"./chunks/framework.D-wbpLqx.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"YAXArrays.jl","text":"Yet another xarray-like Julia package","tagline":"A package for operating on out-of-core labeled arrays, based on stores like NetCDF, Zarr or GDAL.","image":{"src":"/logo.png","alt":"VitePress"},"actions":[{"theme":"alt","text":"Get Started","link":"/get_started"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaDataCubes/YAXArrays.jl"},{"theme":"alt","text":"API reference","link":"/api"}]},"features":[{"title":"Flexible I/O capabilities","details":"Open and operate on NetCDF and Zarr datasets directly. Or bring in data from other sources with ArchGDAL.jl, GRIBDatasets.jl, GeoJSON.jl, HDF5.jl, Shapefile.jl, GeoParquet.jl, etc.","link":"/UserGuide/openZarr"},{"title":"Interoperability","details":"Well integrated with Julia's ecosystem, i.e., distributed operations are native. And plotting with Makie.jl is well supported."},{"title":"Named dimensions and GroupBy(in memory)","details":"Apply operations over named dimensions, select values by labels and integers as well as efficient split-apply-combine operations with groupby via DimensionalData.jl.","link":"/UserGuide/group_by"},{"title":"Efficiency","details":"Efficient mapslices(x) and mapCube operations on huge multiple arrays, optimized for high-latency data access (object storage, compressed datasets)."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}`),o={name:"index.md"};function i(r,n,l,s,d,c){return a(),t("div")}const m=e(o,[["render",i]]);export{f as __pageData,m as default}; diff --git a/dev/assets/ldaihxz.CBBZcGwj.png b/dev/assets/ldaihxz.CBBZcGwj.png new file mode 100644 index 0000000000000000000000000000000000000000..a32b49edf9ca4637970e60e68a9c02777ca36200 GIT binary patch literal 677870 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 YXZ^c5^1t8z?|<~)82G=%!12`o0O}g;jsO4v literal 0 HcmV?d00001 diff --git a/dev/assets/get_started.md.BEfcxfoL.js b/dev/assets/get_started.md.CItvjJHa.js similarity index 72% rename from dev/assets/get_started.md.BEfcxfoL.js rename to dev/assets/get_started.md.CItvjJHa.js index 99fc91e4..567debb6 100644 --- a/dev/assets/get_started.md.BEfcxfoL.js +++ b/dev/assets/get_started.md.CItvjJHa.js @@ -1,4 +1,4 @@ -import{_ as s,c as a,o as i,a3 as n}from"./chunks/framework.BjKsQEKQ.js";const c=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"get_started.md","filePath":"get_started.md","lastUpdated":null}'),t={name:"get_started.md"},p=n(`