From dbddf331b0fc476603f9d8eacf538cbf4895a7a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 29 Jul 2023 10:54:59 +0200 Subject: [PATCH 1/6] Added XML Helper docs --- Documentation/core/xml-helper.md | 135 +++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 Documentation/core/xml-helper.md diff --git a/Documentation/core/xml-helper.md b/Documentation/core/xml-helper.md new file mode 100644 index 00000000..81a43d36 --- /dev/null +++ b/Documentation/core/xml-helper.md @@ -0,0 +1,135 @@ +# XmlHelper + +This page is about the `XmlHelper` class available in PeyrSharp.Core. +You can find here all of its methods. + +::: info +This class is `static`. +::: + +## Compatibility + +The `XmlHelper` class is part of the `PeyrSharp.Core` module, which is compatible with all of these frameworks and platforms: + +| Package/Platform | Windows | macOS | Linux + others | +| ---------------- | ---------- | ---------- | -------------- | +| Core | ✅ | ✅ | ✅ | +| **Framework** | **.NET 5** | **.NET 6** | **.NET 7** | +| Core | ✅ | ✅ | ✅ | + +## Methods + +### LoadFromXml\(path) + +#### Definition + +The `LoadFromXml()` method loads an object of type T from an XML file at the specified path. If the file does not exist, a new instance of type T will be created and saved to the file using the `SaveToXml()` method before returning it. + +#### Type Parameters + +| Type | Description | +| ---- | ------------------------------- | +| `T` | The type of object to be saved. | + +#### Parameters + +| Type | Name | Meaning | +| -------- | ------ | ------------------------------------------- | +| `string` | `path` | The path of the XML file to load or create. | + +#### Returns + +- The loaded object of type T if the file exists and can be deserialized successfully. +- A new instance of type T if the file does not exist and can be created and saved successfully. +- `null` if an exception occurs during loading or saving. + +#### Exceptions + +- `Exception`: If an error occurs during the loading or saving process. + +#### Usage + +```csharp +using PeyrSharp.Core; +using System; +using System.IO; +using System.Xml.Serialization; + +private static void Main() +{ + string path = "path/to/xml/file.xml"; + + // Load an object from the XML file + MyObject obj = XmlHelper.LoadFromXml(path); + + if (obj != null) + { + // Object loaded successfully + Console.WriteLine("Object loaded: " + obj.ToString()); + } + else + { + // Error occurred during loading or saving + Console.WriteLine("Failed to load object."); + } +} + +// Example class for serialization +public class MyObject +{ + public string Name { get; set; } + public int Age { get; set; } + + public override string ToString() + { + return $"Name: {Name}, Age: {Age}"; + } +} +``` + +### SaveToXml\(obj, path) + +#### Definition + +The `SaveToXml()` method saves an object of type T to an XML file at the specified path. + +#### Type Parameters + +| Type | Description | +| ---- | ------------------------------- | +| `T` | The type of object to be saved. | + +#### Arguments + +| Type | Name | Description | +| -------- | ------ | -------------------------------------------- | +| `T` | `obj` | The object to be saved. | +| `string` | `path` | The path of the XML file to save the object. | + +#### Returns + +- `bool`: `true` if the object is successfully serialized and saved to the file; otherwise, `false`. + +#### Usage + +```csharp +using PeyrSharp.Core; +using System.Xml.Serialization; +using System.IO; + +public class MyClass +{ + public int MyProperty { get; set; } +} + +public class Program +{ + private static void Main() + { + MyClass myObject = new MyClass { MyProperty = 123 }; + + // Save the object to an XML file + bool success = XmlHelper.SaveToXml(myObject, "path/to/file.xml"); + } +} +``` From 7e7a122a2741ca7ad33f2c245a72d98fb8358e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 29 Jul 2023 10:55:14 +0200 Subject: [PATCH 2/6] Added JSON Helper docs --- Documentation/core/json-helper.md | 98 +++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 Documentation/core/json-helper.md diff --git a/Documentation/core/json-helper.md b/Documentation/core/json-helper.md new file mode 100644 index 00000000..4075e4bc --- /dev/null +++ b/Documentation/core/json-helper.md @@ -0,0 +1,98 @@ +# JsonHelper + +This page is about the `JsonHelper` class available in PeyrSharp.Core. +You can find here all of its methods. + +::: info +This class is `static`. +::: + +## Compatibility + +The `JsonHelper` class is part of the `PeyrSharp.Core` module, which is compatible with all of these frameworks and platforms: + +| Package/Platform | Windows | macOS | Linux + others | +| ---------------- | ---------- | ---------- | -------------- | +| Core | ✅ | ✅ | ✅ | +| **Framework** | **.NET 5** | **.NET 6** | **.NET 7** | +| Core | ✅ | ✅ | ✅ | + +## Methods + +### LoadFromJson\(fileName) + +#### Definition + +The `LoadFromJson()` method loads an object from a JSON file. + +#### Type Parameters + +| Type | Meaning | +| ---- | ------------------------------- | +| `T` | The type of the object to save. | + +#### Arguments + +| Type | Name | Meaning | +| -------- | ---------- | ---------------------------------- | +| `string` | `fileName` | The name of the file to load from. | + +#### Returns + +The object loaded from the file. + +#### Usage + +```c# +using PeyrSharp.Core; +using System.IO; +using System.Text.Json; + +// Load the person from the JSON file +Person person = JsonHelper.LoadFromJson("person.json"); + +// Print the person's name and age +Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); +``` + +### SaveAsJson\(obj, fileName) + +#### Definition + +The `SaveAsJson()` method saves an object as a JSON file. + +#### Type Parameters + +| Type | Meaning | +| ---- | ------------------------------- | +| `T` | The type of the object to save. | + +#### Arguments + +| Type | Name | Meaning | +| -------- | ---------- | -------------------------------- | +| `T` | `obj` | The object to save. | +| `string` | `fileName` | The name of the file to save to. | + +#### Usage + +```c# +using PeyrSharp.Core; +using System.IO; +using System.Text.Json; + +public static void Main() +{ + // Create an object to save + MyObject obj = new MyObject(); + + // Save the object as a JSON file + JsonHelper.SaveAsJson(obj, "output.json"); +} + +public class MyObject +{ + public string Name { get; set; } + public int Age { get; set; } +} +``` From f15f9fabf01c4f26233f44a2d3b1e7e53a4f92da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 29 Jul 2023 10:55:22 +0200 Subject: [PATCH 3/6] Updated reference page --- Documentation/.vitepress/cache/deps/_metadata.json | 6 +++--- Documentation/reference.md | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/.vitepress/cache/deps/_metadata.json b/Documentation/.vitepress/cache/deps/_metadata.json index 9d738176..36edb081 100644 --- a/Documentation/.vitepress/cache/deps/_metadata.json +++ b/Documentation/.vitepress/cache/deps/_metadata.json @@ -1,11 +1,11 @@ { - "hash": "1cd17bc6", - "browserHash": "cc3e279a", + "hash": "ee02128c", + "browserHash": "bb4a7511", "optimized": { "vue": { "src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "1771e818", + "fileHash": "8742ca03", "needsInterop": false } }, diff --git a/Documentation/reference.md b/Documentation/reference.md index 8a3c18ce..26d3b4a4 100644 --- a/Documentation/reference.md +++ b/Documentation/reference.md @@ -22,6 +22,7 @@ The reference of PeyrSharp. - [GuidGen](/core/guid) - [GuidOptions](/core/guid-options) - [Internet](/core/internet.md) +- [JsonHelper](/core/json-helper.md) - [Maths](/core/maths.md) - [Algebra](/core/maths/algebra.md) - [Geometry](/core/maths/geometry) @@ -40,6 +41,7 @@ The reference of PeyrSharp. - [Trigonometry](/core/maths/trigonometry.md) - [Password](/core/password) - [StatusInfo](/core/statusinfo.md) +- [XmlHelper](/core/xml-helper.md) ## PeyrSharp.Env From a1254038e79f541644a043dc25e6dc238cfb6823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 29 Jul 2023 10:57:31 +0200 Subject: [PATCH 4/6] Updated sidebar --- Documentation/.vitepress/config.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Documentation/.vitepress/config.js b/Documentation/.vitepress/config.js index bd04f81c..abd50cb5 100644 --- a/Documentation/.vitepress/config.js +++ b/Documentation/.vitepress/config.js @@ -248,6 +248,20 @@ function sidebar() { }, ], }, + { + text: "Helpers", + collapsed: false, + items: [ + { + text: "JsonHelper", + link: "/core/json-helper", + }, + { + text: "XmlHelper", + link: "/core/xml-helper", + }, + ], + }, { text: "Internet", collapsed: false, From 990eeec1acf77f0badcff833c51d715c29ec81dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 29 Jul 2023 11:00:11 +0200 Subject: [PATCH 5/6] Updated vitepress --- Documentation/package-lock.json | 437 ++++++++++++++++---------------- 1 file changed, 222 insertions(+), 215 deletions(-) diff --git a/Documentation/package-lock.json b/Documentation/package-lock.json index 6abfca76..460a371b 100644 --- a/Documentation/package-lock.json +++ b/Documentation/package-lock.json @@ -59,138 +59,138 @@ } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.18.0.tgz", - "integrity": "sha512-rUAs49NLlO8LVLgGzM4cLkw8NJLKguQLgvFmBEe3DyzlinoqxzQMHfKZs6TSq4LZfw/z8qHvRo8NcTAAUJQLcw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.19.1.tgz", + "integrity": "sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.18.0" + "@algolia/cache-common": "4.19.1" } }, "node_modules/@algolia/cache-common": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.18.0.tgz", - "integrity": "sha512-BmxsicMR4doGbeEXQu8yqiGmiyvpNvejYJtQ7rvzttEAMxOPoWEHrWyzBQw4x7LrBY9pMrgv4ZlUaF8PGzewHg==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.19.1.tgz", + "integrity": "sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg==", "dev": true }, "node_modules/@algolia/cache-in-memory": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.18.0.tgz", - "integrity": "sha512-evD4dA1nd5HbFdufBxLqlJoob7E2ozlqJZuV3YlirNx5Na4q1LckIuzjNYZs2ddLzuTc/Xd5O3Ibf7OwPskHxw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.19.1.tgz", + "integrity": "sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.18.0" + "@algolia/cache-common": "4.19.1" } }, "node_modules/@algolia/client-account": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.18.0.tgz", - "integrity": "sha512-XsDnlROr3+Z1yjxBJjUMfMazi1V155kVdte6496atvBgOEtwCzTs3A+qdhfsAnGUvaYfBrBkL0ThnhMIBCGcew==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.19.1.tgz", + "integrity": "sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA==", "dev": true, "dependencies": { - "@algolia/client-common": "4.18.0", - "@algolia/client-search": "4.18.0", - "@algolia/transporter": "4.18.0" + "@algolia/client-common": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/client-analytics": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.18.0.tgz", - "integrity": "sha512-chEUSN4ReqU7uRQ1C8kDm0EiPE+eJeAXiWcBwLhEynfNuTfawN9P93rSZktj7gmExz0C8XmkbBU19IQ05wCNrQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.19.1.tgz", + "integrity": "sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg==", "dev": true, "dependencies": { - "@algolia/client-common": "4.18.0", - "@algolia/client-search": "4.18.0", - "@algolia/requester-common": "4.18.0", - "@algolia/transporter": "4.18.0" + "@algolia/client-common": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/client-common": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.18.0.tgz", - "integrity": "sha512-7N+soJFP4wn8tjTr3MSUT/U+4xVXbz4jmeRfWfVAzdAbxLAQbHa0o/POSdTvQ8/02DjCLelloZ1bb4ZFVKg7Wg==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.19.1.tgz", + "integrity": "sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.18.0", - "@algolia/transporter": "4.18.0" + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/client-personalization": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.18.0.tgz", - "integrity": "sha512-+PeCjODbxtamHcPl+couXMeHEefpUpr7IHftj4Y4Nia1hj8gGq4VlIcqhToAw8YjLeCTfOR7r7xtj3pJcYdP8A==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.19.1.tgz", + "integrity": "sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw==", "dev": true, "dependencies": { - "@algolia/client-common": "4.18.0", - "@algolia/requester-common": "4.18.0", - "@algolia/transporter": "4.18.0" + "@algolia/client-common": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/client-search": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.18.0.tgz", - "integrity": "sha512-F9xzQXTjm6UuZtnsLIew6KSraXQ0AzS/Ee+OD+mQbtcA/K1sg89tqb8TkwjtiYZ0oij13u3EapB3gPZwm+1Y6g==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.19.1.tgz", + "integrity": "sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw==", "dev": true, "dependencies": { - "@algolia/client-common": "4.18.0", - "@algolia/requester-common": "4.18.0", - "@algolia/transporter": "4.18.0" + "@algolia/client-common": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/logger-common": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.18.0.tgz", - "integrity": "sha512-46etYgSlkoKepkMSyaoriSn2JDgcrpc/nkOgou/lm0y17GuMl9oYZxwKKTSviLKI5Irk9nSKGwnBTQYwXOYdRg==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.19.1.tgz", + "integrity": "sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw==", "dev": true }, "node_modules/@algolia/logger-console": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.18.0.tgz", - "integrity": "sha512-3P3VUYMl9CyJbi/UU1uUNlf6Z8N2ltW3Oqhq/nR7vH0CjWv32YROq3iGWGxB2xt3aXobdUPXs6P0tHSKRmNA6g==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.19.1.tgz", + "integrity": "sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg==", "dev": true, "dependencies": { - "@algolia/logger-common": "4.18.0" + "@algolia/logger-common": "4.19.1" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.18.0.tgz", - "integrity": "sha512-/AcWHOBub2U4TE/bPi4Gz1XfuLK6/7dj4HJG+Z2SfQoS1RjNLshZclU3OoKIkFp8D2NC7+BNsPvr9cPLyW8nyQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.19.1.tgz", + "integrity": "sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.18.0" + "@algolia/requester-common": "4.19.1" } }, "node_modules/@algolia/requester-common": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.18.0.tgz", - "integrity": "sha512-xlT8R1qYNRBCi1IYLsx7uhftzdfsLPDGudeQs+xvYB4sQ3ya7+ppolB/8m/a4F2gCkEO6oxpp5AGemM7kD27jA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.19.1.tgz", + "integrity": "sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ==", "dev": true }, "node_modules/@algolia/requester-node-http": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.18.0.tgz", - "integrity": "sha512-TGfwj9aeTVgOUhn5XrqBhwUhUUDnGIKlI0kCBMdR58XfXcfdwomka+CPIgThRbfYw04oQr31A6/95ZH2QVJ9UQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.19.1.tgz", + "integrity": "sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.18.0" + "@algolia/requester-common": "4.19.1" } }, "node_modules/@algolia/transporter": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.18.0.tgz", - "integrity": "sha512-xbw3YRUGtXQNG1geYFEDDuFLZt4Z8YNKbamHPkzr3rWc6qp4/BqEeXcI2u/P/oMq2yxtXgMxrCxOPA8lyIe5jw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.19.1.tgz", + "integrity": "sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.18.0", - "@algolia/logger-common": "4.18.0", - "@algolia/requester-common": "4.18.0" + "@algolia/cache-common": "4.19.1", + "@algolia/logger-common": "4.19.1", + "@algolia/requester-common": "4.19.1" } }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -244,9 +244,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", + "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", "cpu": [ "arm" ], @@ -260,9 +260,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", + "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", "cpu": [ "arm64" ], @@ -276,9 +276,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", + "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", "cpu": [ "x64" ], @@ -292,9 +292,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", + "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", "cpu": [ "arm64" ], @@ -308,9 +308,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", + "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", "cpu": [ "x64" ], @@ -324,9 +324,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", + "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", "cpu": [ "arm64" ], @@ -340,9 +340,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", + "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", "cpu": [ "x64" ], @@ -356,9 +356,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", + "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", "cpu": [ "arm" ], @@ -372,9 +372,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", + "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", "cpu": [ "arm64" ], @@ -388,9 +388,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", + "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", "cpu": [ "ia32" ], @@ -404,9 +404,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", + "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", "cpu": [ "loong64" ], @@ -420,9 +420,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", + "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", "cpu": [ "mips64el" ], @@ -436,9 +436,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", + "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", "cpu": [ "ppc64" ], @@ -452,9 +452,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", + "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", "cpu": [ "riscv64" ], @@ -468,9 +468,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", + "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", "cpu": [ "s390x" ], @@ -484,9 +484,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", + "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", "cpu": [ "x64" ], @@ -500,9 +500,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", + "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", "cpu": [ "x64" ], @@ -516,9 +516,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", + "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", "cpu": [ "x64" ], @@ -532,9 +532,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", + "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", "cpu": [ "x64" ], @@ -548,9 +548,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", + "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", "cpu": [ "arm64" ], @@ -564,9 +564,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", + "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", "cpu": [ "ia32" ], @@ -580,9 +580,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", + "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", "cpu": [ "x64" ], @@ -919,31 +919,31 @@ } }, "node_modules/algoliasearch": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.18.0.tgz", - "integrity": "sha512-pCuVxC1SVcpc08ENH32T4sLKSyzoU7TkRIDBMwSLfIiW+fq4znOmWDkAygHZ6pRcO9I1UJdqlfgnV7TRj+MXrA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.19.1.tgz", + "integrity": "sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g==", "dev": true, "dependencies": { - "@algolia/cache-browser-local-storage": "4.18.0", - "@algolia/cache-common": "4.18.0", - "@algolia/cache-in-memory": "4.18.0", - "@algolia/client-account": "4.18.0", - "@algolia/client-analytics": "4.18.0", - "@algolia/client-common": "4.18.0", - "@algolia/client-personalization": "4.18.0", - "@algolia/client-search": "4.18.0", - "@algolia/logger-common": "4.18.0", - "@algolia/logger-console": "4.18.0", - "@algolia/requester-browser-xhr": "4.18.0", - "@algolia/requester-common": "4.18.0", - "@algolia/requester-node-http": "4.18.0", - "@algolia/transporter": "4.18.0" + "@algolia/cache-browser-local-storage": "4.19.1", + "@algolia/cache-common": "4.19.1", + "@algolia/cache-in-memory": "4.19.1", + "@algolia/client-account": "4.19.1", + "@algolia/client-analytics": "4.19.1", + "@algolia/client-common": "4.19.1", + "@algolia/client-personalization": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/logger-common": "4.19.1", + "@algolia/logger-console": "4.19.1", + "@algolia/requester-browser-xhr": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/requester-node-http": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", "dev": true }, "node_modules/body-scroll-lock": { @@ -959,9 +959,9 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", + "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", "dev": true, "hasInstallScript": true, "bin": { @@ -971,28 +971,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "@esbuild/android-arm": "0.18.17", + "@esbuild/android-arm64": "0.18.17", + "@esbuild/android-x64": "0.18.17", + "@esbuild/darwin-arm64": "0.18.17", + "@esbuild/darwin-x64": "0.18.17", + "@esbuild/freebsd-arm64": "0.18.17", + "@esbuild/freebsd-x64": "0.18.17", + "@esbuild/linux-arm": "0.18.17", + "@esbuild/linux-arm64": "0.18.17", + "@esbuild/linux-ia32": "0.18.17", + "@esbuild/linux-loong64": "0.18.17", + "@esbuild/linux-mips64el": "0.18.17", + "@esbuild/linux-ppc64": "0.18.17", + "@esbuild/linux-riscv64": "0.18.17", + "@esbuild/linux-s390x": "0.18.17", + "@esbuild/linux-x64": "0.18.17", + "@esbuild/netbsd-x64": "0.18.17", + "@esbuild/openbsd-x64": "0.18.17", + "@esbuild/sunos-x64": "0.18.17", + "@esbuild/win32-arm64": "0.18.17", + "@esbuild/win32-ia32": "0.18.17", + "@esbuild/win32-x64": "0.18.17" } }, "node_modules/estree-walker": { @@ -1002,12 +1002,12 @@ "dev": true }, "node_modules/focus-trap": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.3.tgz", - "integrity": "sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz", + "integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==", "dev": true, "dependencies": { - "tabbable": "^6.1.2" + "tabbable": "^6.2.0" } }, "node_modules/fsevents": { @@ -1031,12 +1031,12 @@ "dev": true }, "node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "version": "0.30.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz", + "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { "node": ">=12" @@ -1079,9 +1079,9 @@ "dev": true }, "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "version": "8.4.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", "dev": true, "funding": [ { @@ -1107,9 +1107,9 @@ } }, "node_modules/preact": { - "version": "10.15.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", - "integrity": "sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g==", + "version": "10.16.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.16.0.tgz", + "integrity": "sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==", "dev": true, "funding": { "type": "opencollective", @@ -1117,9 +1117,9 @@ } }, "node_modules/rollup": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.0.tgz", - "integrity": "sha512-YzJH0eunH2hr3knvF3i6IkLO/jTjAEwU4HoMUbQl4//Tnl3ou0e7P5SjxdDr8HQJdeUJShlbEHXrrnEHy1l7Yg==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.0.tgz", + "integrity": "sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -1133,9 +1133,9 @@ } }, "node_modules/search-insights": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.6.0.tgz", - "integrity": "sha512-vU2/fJ+h/Mkm/DJOe+EaM5cafJv/1rRTZpGJTuFPf/Q5LjzgMDsqPdSaZsAe+GAWHHsfsu+rQSAn6c8IGtBEVw==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.7.0.tgz", + "integrity": "sha512-GLbVaGgzYEKMvuJbHRhLi1qoBFnjXZGZ6l4LxOYPCp4lI2jDRB3jPU9/XNhMwv6kvnA9slTreq6pvK+b3o3aqg==", "dev": true, "peer": true, "engines": { @@ -1170,14 +1170,14 @@ "dev": true }, "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.7.tgz", + "integrity": "sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==", "dev": true, "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.18.10", + "postcss": "^8.4.26", + "rollup": "^3.25.2" }, "bin": { "vite": "bin/vite.js" @@ -1185,12 +1185,16 @@ "engines": { "node": "^14.18.0 || >=16.0.0" }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -1203,6 +1207,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -1218,23 +1225,23 @@ } }, "node_modules/vitepress": { - "version": "1.0.0-beta.3", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-beta.3.tgz", - "integrity": "sha512-GR5Pvr/o343NN1M4Na1shhDYZRrQbjmLq7WE0lla0H8iDPAsHE8agTHLWfu3FWx+3q2KA29sv16+0O9RQKGjlA==", + "version": "1.0.0-beta.6", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-beta.6.tgz", + "integrity": "sha512-xK/ulKgQpKZVbvlL4+/vW49VG7ySi5nmSoKUNH1G4kM+Cj9JwYM+PDJO7jSJROv8zW99G0ise+maDYnaLlbGBQ==", "dev": true, "dependencies": { - "@docsearch/css": "^3.5.0", - "@docsearch/js": "^3.5.0", + "@docsearch/css": "^3.5.1", + "@docsearch/js": "^3.5.1", "@vitejs/plugin-vue": "^4.2.3", "@vue/devtools-api": "^6.5.0", - "@vueuse/core": "^10.1.2", - "@vueuse/integrations": "^10.1.2", + "@vueuse/core": "^10.2.1", + "@vueuse/integrations": "^10.2.1", "body-scroll-lock": "4.0.0-beta.0", - "focus-trap": "^7.4.3", + "focus-trap": "^7.5.2", "mark.js": "8.11.1", "minisearch": "^6.1.0", - "shiki": "^0.14.2", - "vite": "^4.3.9", + "shiki": "^0.14.3", + "vite": "^4.4.6", "vue": "^3.3.4" }, "bin": { From dfdc395ffc6bb9720ad484748995d56f6c247803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 29 Jul 2023 11:00:35 +0200 Subject: [PATCH 6/6] Built documentation --- .../.vitepress/cache/deps/_metadata.json | 12 +- .../deps/vitepress___@vue_devtools-api.js | 162 ++++++++++++++++++ .../deps/vitepress___@vue_devtools-api.js.map | 7 + Documentation/.vitepress/cache/deps/vue.js | 4 +- .../.vitepress/cache/deps/vue.js.map | 2 +- docs/404.html | 14 +- docs/assets/app.b069fff0.js | 1 + docs/assets/app.b785614f.js | 1 - ...31d2.js => VPAlgoliaSearchBox.456e474e.js} | 2 +- docs/assets/chunks/framework.1eef7d9b.js | 2 + docs/assets/chunks/framework.fed62f4c.js | 2 - docs/assets/chunks/theme.0b40695b.js | 7 + docs/assets/chunks/theme.f05be701.js | 7 - ...ore.md.6ea96005.js => core.md.f6d4ea4c.js} | 2 +- ...96005.lean.js => core.md.f6d4ea4c.lean.js} | 2 +- ...3edc.js => core_converters.md.6208e554.js} | 2 +- ...js => core_converters.md.6208e554.lean.js} | 2 +- ...s => core_converters_angle.md.3818ea53.js} | 2 +- ...core_converters_angle.md.3818ea53.lean.js} | 2 +- ...core_converters_colors_hex.md.a4ef033c.js} | 2 +- ...converters_colors_hex.md.a4ef033c.lean.js} | 2 +- ...core_converters_colors_hsv.md.34af8b4a.js} | 2 +- ...converters_colors_hsv.md.34af8b4a.lean.js} | 2 +- ...core_converters_colors_rgb.md.35de48d5.js} | 2 +- ...converters_colors_rgb.md.35de48d5.lean.js} | 2 +- ... core_converters_distances.md.a2fa2889.js} | 2 +- ..._converters_distances.md.a2fa2889.lean.js} | 2 +- ...> core_converters_energies.md.917d6be6.js} | 2 +- ...e_converters_energies.md.917d6be6.lean.js} | 2 +- ... => core_converters_masses.md.39e62d78.js} | 2 +- ...ore_converters_masses.md.39e62d78.lean.js} | 2 +- ... => core_converters_speeds.md.a110c0de.js} | 2 +- ...ore_converters_speeds.md.a110c0de.lean.js} | 2 +- ...=> core_converters_storage.md.2b813e83.js} | 2 +- ...re_converters_storage.md.2b813e83.lean.js} | 2 +- ...re_converters_temperatures.md.86f399dd.js} | 2 +- ...nverters_temperatures.md.86f399dd.lean.js} | 2 +- ...js => core_converters_time.md.2241ec46.js} | 2 +- ... core_converters_time.md.2241ec46.lean.js} | 2 +- ...=> core_converters_volumes.md.891b8531.js} | 2 +- ...re_converters_volumes.md.891b8531.lean.js} | 2 +- ....515d31eb.js => core_crypt.md.89a6c77c.js} | 2 +- ...lean.js => core_crypt.md.89a6c77c.lean.js} | 2 +- ...94.js => core_guid-options.md.c396b689.js} | 2 +- ... => core_guid-options.md.c396b689.lean.js} | 2 +- ...d.859f4c0d.js => core_guid.md.d249cd02.js} | 2 +- ....lean.js => core_guid.md.d249cd02.lean.js} | 2 +- ...7d4333.js => core_internet.md.6a296b9a.js} | 2 +- ...n.js => core_internet.md.6a296b9a.lean.js} | 2 +- docs/assets/core_json-helper.md.e45838d6.js | 26 +++ .../core_json-helper.md.e45838d6.lean.js | 1 + ....943c74fb.js => core_maths.md.514d3cf2.js} | 2 +- ...lean.js => core_maths.md.514d3cf2.lean.js} | 2 +- ...1.js => core_maths_algebra.md.25cd2650.js} | 2 +- ...=> core_maths_algebra.md.25cd2650.lean.js} | 2 +- ....js => core_maths_geometry.md.f210912f.js} | 2 +- ...> core_maths_geometry.md.f210912f.lean.js} | 2 +- ...core_maths_geometry_circle.md.e12239d2.js} | 2 +- ...maths_geometry_circle.md.e12239d2.lean.js} | 2 +- ...> core_maths_geometry_cone.md.ab75c386.js} | 2 +- ...e_maths_geometry_cone.md.ab75c386.lean.js} | 2 +- ...> core_maths_geometry_cube.md.1daf7518.js} | 2 +- ...e_maths_geometry_cube.md.1daf7518.lean.js} | 2 +- ...re_maths_geometry_cylinder.md.1f35fb1b.js} | 2 +- ...ths_geometry_cylinder.md.1f35fb1b.lean.js} | 2 +- ...ore_maths_geometry_diamond.md.5256c148.js} | 2 +- ...aths_geometry_diamond.md.5256c148.lean.js} | 2 +- ...ore_maths_geometry_hexagon.md.3164db2b.js} | 2 +- ...aths_geometry_hexagon.md.3164db2b.lean.js} | 2 +- ...ore_maths_geometry_pyramid.md.8ad145a7.js} | 2 +- ...aths_geometry_pyramid.md.8ad145a7.lean.js} | 2 +- ...e_maths_geometry_rectangle.md.de2778c8.js} | 2 +- ...hs_geometry_rectangle.md.de2778c8.lean.js} | 2 +- ...core_maths_geometry_sphere.md.1827ca30.js} | 2 +- ...maths_geometry_sphere.md.1827ca30.lean.js} | 2 +- ...re_maths_geometry_triangle.md.3062f476.js} | 2 +- ...ths_geometry_triangle.md.3062f476.lean.js} | 2 +- ... => core_maths_percentages.md.6e243752.js} | 2 +- ...ore_maths_percentages.md.6e243752.lean.js} | 2 +- ...d23.js => core_maths_proba.md.c9293802.js} | 2 +- ...s => core_maths_proba.md.c9293802.lean.js} | 2 +- ...939.js => core_maths_stats.md.9297b391.js} | 2 +- ...s => core_maths_stats.md.9297b391.lean.js} | 2 +- ...=> core_maths_trigonometry.md.78849101.js} | 2 +- ...re_maths_trigonometry.md.78849101.lean.js} | 2 +- ...af009f.js => core_password.md.a9888b08.js} | 2 +- ...n.js => core_password.md.a9888b08.lean.js} | 2 +- ...494a.js => core_statusinfo.md.a51639ad.js} | 2 +- ...js => core_statusinfo.md.a51639ad.lean.js} | 2 +- docs/assets/core_xml-helper.md.db6a1186.js | 53 ++++++ .../core_xml-helper.md.db6a1186.lean.js | 1 + ...c2b75e1.js => enumerations.md.ae8efbeb.js} | 2 +- ...an.js => enumerations.md.ae8efbeb.lean.js} | 2 +- ...{env.md.f9dbcaff.js => env.md.7a083ce5.js} | 2 +- docs/assets/env.md.7a083ce5.lean.js | 1 + docs/assets/env.md.f9dbcaff.lean.js | 1 - ...830df3a3.js => env_filesys.md.8589c991.js} | 2 +- ...ean.js => env_filesys.md.8589c991.lean.js} | 2 +- ....8299eaba.js => env_logger.md.cbed7f54.js} | 2 +- ...lean.js => env_logger.md.cbed7f54.lean.js} | 2 +- ....eb22e65d.js => env_system.md.45d34ea7.js} | 2 +- ...lean.js => env_system.md.45d34ea7.lean.js} | 2 +- ....b9700a57.js => env_update.md.a1273893.js} | 2 +- ...lean.js => env_update.md.a1273893.lean.js} | 2 +- ....772e12c1.js => env_uwpapp.md.dcba768f.js} | 2 +- ...lean.js => env_uwpapp.md.dcba768f.lean.js} | 2 +- ....e7e68fb6.js => exceptions.md.aae9c983.js} | 2 +- ...lean.js => exceptions.md.aae9c983.lean.js} | 2 +- ....e620f6c9.js => extensions.md.b080d23b.js} | 2 +- ...lean.js => extensions.md.b080d23b.lean.js} | 2 +- ...06a.js => extensions_array.md.fc0364fa.js} | 2 +- ...s => extensions_array.md.fc0364fa.lean.js} | 2 +- ...75.js => extensions_double.md.de01a066.js} | 2 +- ... => extensions_double.md.de01a066.lean.js} | 2 +- ...94f62.js => extensions_int.md.8d3dd603.js} | 2 +- ....js => extensions_int.md.8d3dd603.lean.js} | 2 +- ...45.js => extensions_string.md.57d0b3ae.js} | 2 +- ... => extensions_string.md.57d0b3ae.lean.js} | 2 +- ...471947b8.js => get-started.md.a01a8ac8.js} | 2 +- ...ean.js => get-started.md.a01a8ac8.lean.js} | 2 +- ...ex.md.2e30fbda.js => index.md.6827c3c3.js} | 2 +- ...fbda.lean.js => index.md.6827c3c3.lean.js} | 2 +- ...ro.md.1957dd01.js => intro.md.8e286665.js} | 2 +- ...dd01.lean.js => intro.md.8e286665.lean.js} | 2 +- docs/assets/reference.md.8929dea9.js | 1 - docs/assets/reference.md.a31a0df4.js | 1 + ....lean.js => reference.md.a31a0df4.lean.js} | 2 +- docs/assets/style.06b3f6a5.css | 1 - docs/assets/style.296d3996.css | 1 + ....a8059bb6.js => ui-helpers.md.63c75787.js} | 2 +- ...lean.js => ui-helpers.md.63c75787.lean.js} | 2 +- ...2d.js => ui-helpers_screen.md.abf9d1aa.js} | 2 +- ... => ui-helpers_screen.md.abf9d1aa.lean.js} | 2 +- ....js => ui-helpers_winforms.md.3d7797a8.js} | 2 +- ...> ui-helpers_winforms.md.3d7797a8.lean.js} | 2 +- ...34932.js => ui-helpers_wpf.md.9c708ade.js} | 2 +- ....js => ui-helpers_wpf.md.9c708ade.lean.js} | 2 +- docs/core.html | 20 +-- docs/core/converters.html | 20 +-- docs/core/converters/angle.html | 22 +-- docs/core/converters/colors/hex.html | 22 +-- docs/core/converters/colors/hsv.html | 22 +-- docs/core/converters/colors/rgb.html | 22 +-- docs/core/converters/distances.html | 22 +-- docs/core/converters/energies.html | 22 +-- docs/core/converters/masses.html | 22 +-- docs/core/converters/speeds.html | 22 +-- docs/core/converters/storage.html | 22 +-- docs/core/converters/temperatures.html | 22 +-- docs/core/converters/time.html | 22 +-- docs/core/converters/volumes.html | 22 +-- docs/core/crypt.html | 22 +-- docs/core/guid-options.html | 22 +-- docs/core/guid.html | 22 +-- docs/core/internet.html | 22 +-- docs/core/json-helper.html | 48 ++++++ docs/core/maths.html | 20 +-- docs/core/maths/algebra.html | 22 +-- docs/core/maths/geometry.html | 20 +-- docs/core/maths/geometry/circle.html | 22 +-- docs/core/maths/geometry/cone.html | 22 +-- docs/core/maths/geometry/cube.html | 22 +-- docs/core/maths/geometry/cylinder.html | 22 +-- docs/core/maths/geometry/diamond.html | 22 +-- docs/core/maths/geometry/hexagon.html | 22 +-- docs/core/maths/geometry/pyramid.html | 22 +-- docs/core/maths/geometry/rectangle.html | 22 +-- docs/core/maths/geometry/sphere.html | 22 +-- docs/core/maths/geometry/triangle.html | 22 +-- docs/core/maths/percentages.html | 22 +-- docs/core/maths/proba.html | 22 +-- docs/core/maths/stats.html | 22 +-- docs/core/maths/trigonometry.html | 22 +-- docs/core/password.html | 22 +-- docs/core/statusinfo.html | 20 +-- docs/core/xml-helper.html | 75 ++++++++ docs/enumerations.html | 22 +-- docs/env.html | 20 +-- docs/env/filesys.html | 22 +-- docs/env/logger.html | 22 +-- docs/env/system.html | 22 +-- docs/env/update.html | 22 +-- docs/env/uwpapp.html | 22 +-- docs/exceptions.html | 22 +-- docs/extensions.html | 20 +-- docs/extensions/array.html | 22 +-- docs/extensions/double.html | 22 +-- docs/extensions/int.html | 22 +-- docs/extensions/string.html | 22 +-- docs/get-started.html | 22 +-- docs/hashmap.json | 2 +- docs/index.html | 20 +-- docs/intro.html | 20 +-- docs/reference.html | 20 +-- docs/ui-helpers.html | 20 +-- docs/ui-helpers/screen.html | 22 +-- docs/ui-helpers/winforms.html | 22 +-- docs/ui-helpers/wpf.html | 22 +-- 198 files changed, 1148 insertions(+), 769 deletions(-) create mode 100644 Documentation/.vitepress/cache/deps/vitepress___@vue_devtools-api.js create mode 100644 Documentation/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map create mode 100644 docs/assets/app.b069fff0.js delete mode 100644 docs/assets/app.b785614f.js rename docs/assets/chunks/{VPAlgoliaSearchBox.2c3131d2.js => VPAlgoliaSearchBox.456e474e.js} (99%) create mode 100644 docs/assets/chunks/framework.1eef7d9b.js delete mode 100644 docs/assets/chunks/framework.fed62f4c.js create mode 100644 docs/assets/chunks/theme.0b40695b.js delete mode 100644 docs/assets/chunks/theme.f05be701.js rename docs/assets/{core.md.6ea96005.js => core.md.f6d4ea4c.js} (93%) rename docs/assets/{core.md.6ea96005.lean.js => core.md.f6d4ea4c.lean.js} (66%) rename docs/assets/{core_converters.md.cabb3edc.js => core_converters.md.6208e554.js} (94%) rename docs/assets/{core_converters.md.cabb3edc.lean.js => core_converters.md.6208e554.lean.js} (69%) rename docs/assets/{core_converters_angle.md.2f3b013f.js => core_converters_angle.md.3818ea53.js} (97%) rename docs/assets/{core_converters_angle.md.2f3b013f.lean.js => core_converters_angle.md.3818ea53.lean.js} (70%) rename docs/assets/{core_converters_colors_hex.md.1be7009e.js => core_converters_colors_hex.md.a4ef033c.js} (98%) rename docs/assets/{core_converters_colors_hex.md.1be7009e.lean.js => core_converters_colors_hex.md.a4ef033c.lean.js} (71%) rename docs/assets/{core_converters_colors_hsv.md.8a2445f1.js => core_converters_colors_hsv.md.34af8b4a.js} (98%) rename docs/assets/{core_converters_colors_hsv.md.8a2445f1.lean.js => core_converters_colors_hsv.md.34af8b4a.lean.js} (71%) rename docs/assets/{core_converters_colors_rgb.md.ff4910bf.js => core_converters_colors_rgb.md.35de48d5.js} (98%) rename docs/assets/{core_converters_colors_rgb.md.ff4910bf.lean.js => core_converters_colors_rgb.md.35de48d5.lean.js} (71%) rename docs/assets/{core_converters_distances.md.c9199855.js => core_converters_distances.md.a2fa2889.js} (98%) rename docs/assets/{core_converters_distances.md.c9199855.lean.js => core_converters_distances.md.a2fa2889.lean.js} (71%) rename docs/assets/{core_converters_energies.md.52cf3f4a.js => core_converters_energies.md.917d6be6.js} (97%) rename docs/assets/{core_converters_energies.md.52cf3f4a.lean.js => core_converters_energies.md.917d6be6.lean.js} (71%) rename docs/assets/{core_converters_masses.md.86e09b8b.js => core_converters_masses.md.39e62d78.js} (97%) rename docs/assets/{core_converters_masses.md.86e09b8b.lean.js => core_converters_masses.md.39e62d78.lean.js} (70%) rename docs/assets/{core_converters_speeds.md.c8cee65d.js => core_converters_speeds.md.a110c0de.js} (99%) rename docs/assets/{core_converters_speeds.md.c8cee65d.lean.js => core_converters_speeds.md.a110c0de.lean.js} (70%) rename docs/assets/{core_converters_storage.md.61854592.js => core_converters_storage.md.2b813e83.js} (99%) rename docs/assets/{core_converters_storage.md.61854592.lean.js => core_converters_storage.md.2b813e83.lean.js} (71%) rename docs/assets/{core_converters_temperatures.md.7910007d.js => core_converters_temperatures.md.86f399dd.js} (97%) rename docs/assets/{core_converters_temperatures.md.7910007d.lean.js => core_converters_temperatures.md.86f399dd.lean.js} (72%) rename docs/assets/{core_converters_time.md.2b2ca65c.js => core_converters_time.md.2241ec46.js} (99%) rename docs/assets/{core_converters_time.md.2b2ca65c.lean.js => core_converters_time.md.2241ec46.lean.js} (70%) rename docs/assets/{core_converters_volumes.md.ef4d4981.js => core_converters_volumes.md.891b8531.js} (97%) rename docs/assets/{core_converters_volumes.md.ef4d4981.lean.js => core_converters_volumes.md.891b8531.lean.js} (71%) rename docs/assets/{core_crypt.md.515d31eb.js => core_crypt.md.89a6c77c.js} (99%) rename docs/assets/{core_crypt.md.515d31eb.lean.js => core_crypt.md.89a6c77c.lean.js} (68%) rename docs/assets/{core_guid-options.md.43a23994.js => core_guid-options.md.c396b689.js} (98%) rename docs/assets/{core_guid-options.md.43a23994.lean.js => core_guid-options.md.c396b689.lean.js} (70%) rename docs/assets/{core_guid.md.859f4c0d.js => core_guid.md.d249cd02.js} (98%) rename docs/assets/{core_guid.md.859f4c0d.lean.js => core_guid.md.d249cd02.lean.js} (68%) rename docs/assets/{core_internet.md.777d4333.js => core_internet.md.6a296b9a.js} (99%) rename docs/assets/{core_internet.md.777d4333.lean.js => core_internet.md.6a296b9a.lean.js} (69%) create mode 100644 docs/assets/core_json-helper.md.e45838d6.js create mode 100644 docs/assets/core_json-helper.md.e45838d6.lean.js rename docs/assets/{core_maths.md.943c74fb.js => core_maths.md.514d3cf2.js} (95%) rename docs/assets/{core_maths.md.943c74fb.lean.js => core_maths.md.514d3cf2.lean.js} (68%) rename docs/assets/{core_maths_algebra.md.f648b381.js => core_maths_algebra.md.25cd2650.js} (99%) rename docs/assets/{core_maths_algebra.md.f648b381.lean.js => core_maths_algebra.md.25cd2650.lean.js} (70%) rename docs/assets/{core_maths_geometry.md.bb1ce1d9.js => core_maths_geometry.md.f210912f.js} (94%) rename docs/assets/{core_maths_geometry.md.bb1ce1d9.lean.js => core_maths_geometry.md.f210912f.lean.js} (70%) rename docs/assets/{core_maths_geometry_circle.md.e17d53a3.js => core_maths_geometry_circle.md.e12239d2.js} (98%) rename docs/assets/{core_maths_geometry_circle.md.e17d53a3.lean.js => core_maths_geometry_circle.md.e12239d2.lean.js} (71%) rename docs/assets/{core_maths_geometry_cone.md.0a557e23.js => core_maths_geometry_cone.md.ab75c386.js} (98%) rename docs/assets/{core_maths_geometry_cone.md.0a557e23.lean.js => core_maths_geometry_cone.md.ab75c386.lean.js} (71%) rename docs/assets/{core_maths_geometry_cube.md.425fa255.js => core_maths_geometry_cube.md.1daf7518.js} (99%) rename docs/assets/{core_maths_geometry_cube.md.425fa255.lean.js => core_maths_geometry_cube.md.1daf7518.lean.js} (71%) rename docs/assets/{core_maths_geometry_cylinder.md.4f73563e.js => core_maths_geometry_cylinder.md.1f35fb1b.js} (99%) rename docs/assets/{core_maths_geometry_cylinder.md.4f73563e.lean.js => core_maths_geometry_cylinder.md.1f35fb1b.lean.js} (72%) rename docs/assets/{core_maths_geometry_diamond.md.8a5f5fd8.js => core_maths_geometry_diamond.md.5256c148.js} (99%) rename docs/assets/{core_maths_geometry_diamond.md.8a5f5fd8.lean.js => core_maths_geometry_diamond.md.5256c148.lean.js} (71%) rename docs/assets/{core_maths_geometry_hexagon.md.b8006212.js => core_maths_geometry_hexagon.md.3164db2b.js} (98%) rename docs/assets/{core_maths_geometry_hexagon.md.b8006212.lean.js => core_maths_geometry_hexagon.md.3164db2b.lean.js} (71%) rename docs/assets/{core_maths_geometry_pyramid.md.0310bf75.js => core_maths_geometry_pyramid.md.8ad145a7.js} (99%) rename docs/assets/{core_maths_geometry_pyramid.md.0310bf75.lean.js => core_maths_geometry_pyramid.md.8ad145a7.lean.js} (71%) rename docs/assets/{core_maths_geometry_rectangle.md.bde50885.js => core_maths_geometry_rectangle.md.de2778c8.js} (99%) rename docs/assets/{core_maths_geometry_rectangle.md.bde50885.lean.js => core_maths_geometry_rectangle.md.de2778c8.lean.js} (72%) rename docs/assets/{core_maths_geometry_sphere.md.8e538baa.js => core_maths_geometry_sphere.md.1827ca30.js} (98%) rename docs/assets/{core_maths_geometry_sphere.md.8e538baa.lean.js => core_maths_geometry_sphere.md.1827ca30.lean.js} (71%) rename docs/assets/{core_maths_geometry_triangle.md.8a4205ff.js => core_maths_geometry_triangle.md.3062f476.js} (99%) rename docs/assets/{core_maths_geometry_triangle.md.8a4205ff.lean.js => core_maths_geometry_triangle.md.3062f476.lean.js} (72%) rename docs/assets/{core_maths_percentages.md.4fc6496d.js => core_maths_percentages.md.6e243752.js} (98%) rename docs/assets/{core_maths_percentages.md.4fc6496d.lean.js => core_maths_percentages.md.6e243752.lean.js} (71%) rename docs/assets/{core_maths_proba.md.29a45d23.js => core_maths_proba.md.c9293802.js} (97%) rename docs/assets/{core_maths_proba.md.29a45d23.lean.js => core_maths_proba.md.c9293802.lean.js} (69%) rename docs/assets/{core_maths_stats.md.5e5b0939.js => core_maths_stats.md.9297b391.js} (99%) rename docs/assets/{core_maths_stats.md.5e5b0939.lean.js => core_maths_stats.md.9297b391.lean.js} (69%) rename docs/assets/{core_maths_trigonometry.md.c077acb3.js => core_maths_trigonometry.md.78849101.js} (98%) rename docs/assets/{core_maths_trigonometry.md.c077acb3.lean.js => core_maths_trigonometry.md.78849101.lean.js} (71%) rename docs/assets/{core_password.md.1daf009f.js => core_password.md.a9888b08.js} (99%) rename docs/assets/{core_password.md.1daf009f.lean.js => core_password.md.a9888b08.lean.js} (69%) rename docs/assets/{core_statusinfo.md.038b494a.js => core_statusinfo.md.a51639ad.js} (97%) rename docs/assets/{core_statusinfo.md.038b494a.lean.js => core_statusinfo.md.a51639ad.lean.js} (69%) create mode 100644 docs/assets/core_xml-helper.md.db6a1186.js create mode 100644 docs/assets/core_xml-helper.md.db6a1186.lean.js rename docs/assets/{enumerations.md.6c2b75e1.js => enumerations.md.ae8efbeb.js} (99%) rename docs/assets/{enumerations.md.6c2b75e1.lean.js => enumerations.md.ae8efbeb.lean.js} (69%) rename docs/assets/{env.md.f9dbcaff.js => env.md.7a083ce5.js} (88%) create mode 100644 docs/assets/env.md.7a083ce5.lean.js delete mode 100644 docs/assets/env.md.f9dbcaff.lean.js rename docs/assets/{env_filesys.md.830df3a3.js => env_filesys.md.8589c991.js} (99%) rename docs/assets/{env_filesys.md.830df3a3.lean.js => env_filesys.md.8589c991.lean.js} (68%) rename docs/assets/{env_logger.md.8299eaba.js => env_logger.md.cbed7f54.js} (98%) rename docs/assets/{env_logger.md.8299eaba.lean.js => env_logger.md.cbed7f54.lean.js} (68%) rename docs/assets/{env_system.md.eb22e65d.js => env_system.md.45d34ea7.js} (99%) rename docs/assets/{env_system.md.eb22e65d.lean.js => env_system.md.45d34ea7.lean.js} (68%) rename docs/assets/{env_update.md.b9700a57.js => env_update.md.a1273893.js} (97%) rename docs/assets/{env_update.md.b9700a57.lean.js => env_update.md.a1273893.lean.js} (52%) rename docs/assets/{env_uwpapp.md.772e12c1.js => env_uwpapp.md.dcba768f.js} (98%) rename docs/assets/{env_uwpapp.md.772e12c1.lean.js => env_uwpapp.md.dcba768f.lean.js} (68%) rename docs/assets/{exceptions.md.e7e68fb6.js => exceptions.md.aae9c983.js} (98%) rename docs/assets/{exceptions.md.e7e68fb6.lean.js => exceptions.md.aae9c983.lean.js} (68%) rename docs/assets/{extensions.md.e620f6c9.js => extensions.md.b080d23b.js} (92%) rename docs/assets/{extensions.md.e620f6c9.lean.js => extensions.md.b080d23b.lean.js} (68%) rename docs/assets/{extensions_array.md.b6bd906a.js => extensions_array.md.fc0364fa.js} (99%) rename docs/assets/{extensions_array.md.b6bd906a.lean.js => extensions_array.md.fc0364fa.lean.js} (70%) rename docs/assets/{extensions_double.md.8b8e8575.js => extensions_double.md.de01a066.js} (99%) rename docs/assets/{extensions_double.md.8b8e8575.lean.js => extensions_double.md.de01a066.lean.js} (70%) rename docs/assets/{extensions_int.md.06c94f62.js => extensions_int.md.8d3dd603.js} (99%) rename docs/assets/{extensions_int.md.06c94f62.lean.js => extensions_int.md.8d3dd603.lean.js} (69%) rename docs/assets/{extensions_string.md.2b9e7045.js => extensions_string.md.57d0b3ae.js} (99%) rename docs/assets/{extensions_string.md.2b9e7045.lean.js => extensions_string.md.57d0b3ae.lean.js} (55%) rename docs/assets/{get-started.md.471947b8.js => get-started.md.a01a8ac8.js} (98%) rename docs/assets/{get-started.md.471947b8.lean.js => get-started.md.a01a8ac8.lean.js} (69%) rename docs/assets/{index.md.2e30fbda.js => index.md.6827c3c3.js} (94%) rename docs/assets/{index.md.2e30fbda.lean.js => index.md.6827c3c3.lean.js} (94%) rename docs/assets/{intro.md.1957dd01.js => intro.md.8e286665.js} (97%) rename docs/assets/{intro.md.1957dd01.lean.js => intro.md.8e286665.lean.js} (67%) delete mode 100644 docs/assets/reference.md.8929dea9.js create mode 100644 docs/assets/reference.md.a31a0df4.js rename docs/assets/{reference.md.8929dea9.lean.js => reference.md.a31a0df4.lean.js} (52%) delete mode 100644 docs/assets/style.06b3f6a5.css create mode 100644 docs/assets/style.296d3996.css rename docs/assets/{ui-helpers.md.a8059bb6.js => ui-helpers.md.63c75787.js} (92%) rename docs/assets/{ui-helpers.md.a8059bb6.lean.js => ui-helpers.md.63c75787.lean.js} (68%) rename docs/assets/{ui-helpers_screen.md.2ef9612d.js => ui-helpers_screen.md.abf9d1aa.js} (99%) rename docs/assets/{ui-helpers_screen.md.2ef9612d.lean.js => ui-helpers_screen.md.abf9d1aa.lean.js} (69%) rename docs/assets/{ui-helpers_winforms.md.db7d438d.js => ui-helpers_winforms.md.3d7797a8.js} (99%) rename docs/assets/{ui-helpers_winforms.md.db7d438d.lean.js => ui-helpers_winforms.md.3d7797a8.lean.js} (70%) rename docs/assets/{ui-helpers_wpf.md.99234932.js => ui-helpers_wpf.md.9c708ade.js} (96%) rename docs/assets/{ui-helpers_wpf.md.99234932.lean.js => ui-helpers_wpf.md.9c708ade.lean.js} (69%) create mode 100644 docs/core/json-helper.html create mode 100644 docs/core/xml-helper.html diff --git a/Documentation/.vitepress/cache/deps/_metadata.json b/Documentation/.vitepress/cache/deps/_metadata.json index 36edb081..e07fe873 100644 --- a/Documentation/.vitepress/cache/deps/_metadata.json +++ b/Documentation/.vitepress/cache/deps/_metadata.json @@ -1,11 +1,17 @@ { - "hash": "ee02128c", - "browserHash": "bb4a7511", + "hash": "44ac7ce3", + "browserHash": "3699f0c8", "optimized": { "vue": { "src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "8742ca03", + "fileHash": "380e6e7c", + "needsInterop": false + }, + "vitepress > @vue/devtools-api": { + "src": "../../../node_modules/@vue/devtools-api/lib/esm/index.js", + "file": "vitepress___@vue_devtools-api.js", + "fileHash": "944a23b0", "needsInterop": false } }, diff --git a/Documentation/.vitepress/cache/deps/vitepress___@vue_devtools-api.js b/Documentation/.vitepress/cache/deps/vitepress___@vue_devtools-api.js new file mode 100644 index 00000000..72ba6388 --- /dev/null +++ b/Documentation/.vitepress/cache/deps/vitepress___@vue_devtools-api.js @@ -0,0 +1,162 @@ +// node_modules/@vue/devtools-api/lib/esm/env.js +function getDevtoolsGlobalHook() { + return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; +} +function getTarget() { + return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}; +} +var isProxyAvailable = typeof Proxy === "function"; + +// node_modules/@vue/devtools-api/lib/esm/const.js +var HOOK_SETUP = "devtools-plugin:setup"; +var HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set"; + +// node_modules/@vue/devtools-api/lib/esm/time.js +var supported; +var perf; +function isPerformanceSupported() { + var _a; + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else if (typeof global !== "undefined" && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { + supported = true; + perf = global.perf_hooks.performance; + } else { + supported = false; + } + return supported; +} +function now() { + return isPerformanceSupported() ? perf.now() : Date.now(); +} + +// node_modules/@vue/devtools-api/lib/esm/proxy.js +var ApiProxy = class { + constructor(plugin, hook) { + this.target = null; + this.targetQueue = []; + this.onQueue = []; + this.plugin = plugin; + this.hook = hook; + const defaultSettings = {}; + if (plugin.settings) { + for (const id in plugin.settings) { + const item = plugin.settings[id]; + defaultSettings[id] = item.defaultValue; + } + } + const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; + let currentSettings = Object.assign({}, defaultSettings); + try { + const raw = localStorage.getItem(localSettingsSaveId); + const data = JSON.parse(raw); + Object.assign(currentSettings, data); + } catch (e) { + } + this.fallbacks = { + getSettings() { + return currentSettings; + }, + setSettings(value) { + try { + localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); + } catch (e) { + } + currentSettings = value; + }, + now() { + return now(); + } + }; + if (hook) { + hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { + if (pluginId === this.plugin.id) { + this.fallbacks.setSettings(value); + } + }); + } + this.proxiedOn = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target.on[prop]; + } else { + return (...args) => { + this.onQueue.push({ + method: prop, + args + }); + }; + } + } + }); + this.proxiedTarget = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target[prop]; + } else if (prop === "on") { + return this.proxiedOn; + } else if (Object.keys(this.fallbacks).includes(prop)) { + return (...args) => { + this.targetQueue.push({ + method: prop, + args, + resolve: () => { + } + }); + return this.fallbacks[prop](...args); + }; + } else { + return (...args) => { + return new Promise((resolve) => { + this.targetQueue.push({ + method: prop, + args, + resolve + }); + }); + }; + } + } + }); + } + async setRealTarget(target) { + this.target = target; + for (const item of this.onQueue) { + this.target.on[item.method](...item.args); + } + for (const item of this.targetQueue) { + item.resolve(await this.target[item.method](...item.args)); + } + } +}; + +// node_modules/@vue/devtools-api/lib/esm/index.js +function setupDevtoolsPlugin(pluginDescriptor, setupFn) { + const descriptor = pluginDescriptor; + const target = getTarget(); + const hook = getDevtoolsGlobalHook(); + const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy; + if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { + hook.emit(HOOK_SETUP, pluginDescriptor, setupFn); + } else { + const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null; + const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; + list.push({ + pluginDescriptor: descriptor, + setupFn, + proxy + }); + if (proxy) + setupFn(proxy.proxiedTarget); + } +} +export { + isPerformanceSupported, + now, + setupDevtoolsPlugin +}; +//# sourceMappingURL=vitepress___@vue_devtools-api.js.map diff --git a/Documentation/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map b/Documentation/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map new file mode 100644 index 00000000..9c77eb65 --- /dev/null +++ b/Documentation/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/@vue/devtools-api/lib/esm/env.js", "../../../node_modules/@vue/devtools-api/lib/esm/const.js", "../../../node_modules/@vue/devtools-api/lib/esm/time.js", "../../../node_modules/@vue/devtools-api/lib/esm/proxy.js", "../../../node_modules/@vue/devtools-api/lib/esm/index.js"], + "sourcesContent": ["export function getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nexport function getTarget() {\n // @ts-ignore\n return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n}\nexport const isProxyAvailable = typeof Proxy === 'function';\n", "export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n", "let supported;\nlet perf;\nexport function isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof global !== 'undefined' && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = global.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nexport function now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n", "import { HOOK_PLUGIN_SETTINGS_SET } from './const.js';\nimport { now } from './time.js';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n now() {\n return now();\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise(resolve => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n", "import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env.js';\nimport { HOOK_SETUP } from './const.js';\nimport { ApiProxy } from './proxy.js';\nexport * from './api/index.js';\nexport * from './plugin.js';\nexport * from './time.js';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n"], + "mappings": ";AAAO,SAAS,wBAAwB;AACpC,SAAO,UAAU,EAAE;AACvB;AACO,SAAS,YAAY;AAExB,SAAQ,OAAO,cAAc,eAAe,OAAO,WAAW,cACxD,SACA,OAAO,WAAW,cACd,SACA,CAAC;AACf;AACO,IAAM,mBAAmB,OAAO,UAAU;;;ACX1C,IAAM,aAAa;AACnB,IAAM,2BAA2B;;;ACDxC,IAAI;AACJ,IAAI;AACG,SAAS,yBAAyB;AACrC,MAAI;AACJ,MAAI,cAAc,QAAW;AACzB,WAAO;AAAA,EACX;AACA,MAAI,OAAO,WAAW,eAAe,OAAO,aAAa;AACrD,gBAAY;AACZ,WAAO,OAAO;AAAA,EAClB,WACS,OAAO,WAAW,iBAAiB,KAAK,OAAO,gBAAgB,QAAQ,OAAO,SAAS,SAAS,GAAG,cAAc;AACtH,gBAAY;AACZ,WAAO,OAAO,WAAW;AAAA,EAC7B,OACK;AACD,gBAAY;AAAA,EAChB;AACA,SAAO;AACX;AACO,SAAS,MAAM;AAClB,SAAO,uBAAuB,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI;AAC5D;;;ACpBO,IAAM,WAAN,MAAe;AAAA,EAClB,YAAY,QAAQ,MAAM;AACtB,SAAK,SAAS;AACd,SAAK,cAAc,CAAC;AACpB,SAAK,UAAU,CAAC;AAChB,SAAK,SAAS;AACd,SAAK,OAAO;AACZ,UAAM,kBAAkB,CAAC;AACzB,QAAI,OAAO,UAAU;AACjB,iBAAW,MAAM,OAAO,UAAU;AAC9B,cAAM,OAAO,OAAO,SAAS,EAAE;AAC/B,wBAAgB,EAAE,IAAI,KAAK;AAAA,MAC/B;AAAA,IACJ;AACA,UAAM,sBAAsB,mCAAmC,OAAO,EAAE;AACxE,QAAI,kBAAkB,OAAO,OAAO,CAAC,GAAG,eAAe;AACvD,QAAI;AACA,YAAM,MAAM,aAAa,QAAQ,mBAAmB;AACpD,YAAM,OAAO,KAAK,MAAM,GAAG;AAC3B,aAAO,OAAO,iBAAiB,IAAI;AAAA,IACvC,SACO,GAAG;AAAA,IAEV;AACA,SAAK,YAAY;AAAA,MACb,cAAc;AACV,eAAO;AAAA,MACX;AAAA,MACA,YAAY,OAAO;AACf,YAAI;AACA,uBAAa,QAAQ,qBAAqB,KAAK,UAAU,KAAK,CAAC;AAAA,QACnE,SACO,GAAG;AAAA,QAEV;AACA,0BAAkB;AAAA,MACtB;AAAA,MACA,MAAM;AACF,eAAO,IAAI;AAAA,MACf;AAAA,IACJ;AACA,QAAI,MAAM;AACN,WAAK,GAAG,0BAA0B,CAAC,UAAU,UAAU;AACnD,YAAI,aAAa,KAAK,OAAO,IAAI;AAC7B,eAAK,UAAU,YAAY,KAAK;AAAA,QACpC;AAAA,MACJ,CAAC;AAAA,IACL;AACA,SAAK,YAAY,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3B,KAAK,CAAC,SAAS,SAAS;AACpB,YAAI,KAAK,QAAQ;AACb,iBAAO,KAAK,OAAO,GAAG,IAAI;AAAA,QAC9B,OACK;AACD,iBAAO,IAAI,SAAS;AAChB,iBAAK,QAAQ,KAAK;AAAA,cACd,QAAQ;AAAA,cACR;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AACD,SAAK,gBAAgB,IAAI,MAAM,CAAC,GAAG;AAAA,MAC/B,KAAK,CAAC,SAAS,SAAS;AACpB,YAAI,KAAK,QAAQ;AACb,iBAAO,KAAK,OAAO,IAAI;AAAA,QAC3B,WACS,SAAS,MAAM;AACpB,iBAAO,KAAK;AAAA,QAChB,WACS,OAAO,KAAK,KAAK,SAAS,EAAE,SAAS,IAAI,GAAG;AACjD,iBAAO,IAAI,SAAS;AAChB,iBAAK,YAAY,KAAK;AAAA,cAClB,QAAQ;AAAA,cACR;AAAA,cACA,SAAS,MAAM;AAAA,cAAE;AAAA,YACrB,CAAC;AACD,mBAAO,KAAK,UAAU,IAAI,EAAE,GAAG,IAAI;AAAA,UACvC;AAAA,QACJ,OACK;AACD,iBAAO,IAAI,SAAS;AAChB,mBAAO,IAAI,QAAQ,aAAW;AAC1B,mBAAK,YAAY,KAAK;AAAA,gBAClB,QAAQ;AAAA,gBACR;AAAA,gBACA;AAAA,cACJ,CAAC;AAAA,YACL,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,MAAM,cAAc,QAAQ;AACxB,SAAK,SAAS;AACd,eAAW,QAAQ,KAAK,SAAS;AAC7B,WAAK,OAAO,GAAG,KAAK,MAAM,EAAE,GAAG,KAAK,IAAI;AAAA,IAC5C;AACA,eAAW,QAAQ,KAAK,aAAa;AACjC,WAAK,QAAQ,MAAM,KAAK,OAAO,KAAK,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;AAAA,IAC7D;AAAA,EACJ;AACJ;;;ACpGO,SAAS,oBAAoB,kBAAkB,SAAS;AAC3D,QAAM,aAAa;AACnB,QAAM,SAAS,UAAU;AACzB,QAAM,OAAO,sBAAsB;AACnC,QAAM,cAAc,oBAAoB,WAAW;AACnD,MAAI,SAAS,OAAO,yCAAyC,CAAC,cAAc;AACxE,SAAK,KAAK,YAAY,kBAAkB,OAAO;AAAA,EACnD,OACK;AACD,UAAM,QAAQ,cAAc,IAAI,SAAS,YAAY,IAAI,IAAI;AAC7D,UAAM,OAAO,OAAO,2BAA2B,OAAO,4BAA4B,CAAC;AACnF,SAAK,KAAK;AAAA,MACN,kBAAkB;AAAA,MAClB;AAAA,MACA;AAAA,IACJ,CAAC;AACD,QAAI;AACA,cAAQ,MAAM,aAAa;AAAA,EACnC;AACJ;", + "names": [] +} diff --git a/Documentation/.vitepress/cache/deps/vue.js b/Documentation/.vitepress/cache/deps/vue.js index cc22c9f2..4212884c 100644 --- a/Documentation/.vitepress/cache/deps/vue.js +++ b/Documentation/.vitepress/cache/deps/vue.js @@ -9488,7 +9488,7 @@ var defineSSRCustomElement = (options) => { }; var BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { }; -var VueElement = class extends BaseClass { +var VueElement = class _VueElement extends BaseClass { constructor(_def, _props = {}, hydrate2) { super(); this._def = _def; @@ -9659,7 +9659,7 @@ var VueElement = class extends BaseClass { }; let parent = this; while (parent = parent && (parent.parentNode || parent.host)) { - if (parent instanceof VueElement) { + if (parent instanceof _VueElement) { instance.parent = parent._instance; instance.provides = parent._instance.provides; break; diff --git a/Documentation/.vitepress/cache/deps/vue.js.map b/Documentation/.vitepress/cache/deps/vue.js.map index 6c0ac514..46233420 100644 --- a/Documentation/.vitepress/cache/deps/vue.js.map +++ b/Documentation/.vitepress/cache/deps/vue.js.map @@ -2,6 +2,6 @@ "version": 3, "sources": ["../../../node_modules/@vue/shared/dist/shared.esm-bundler.js", "../../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js", "../../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js", "../../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js", "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js"], "sourcesContent": ["function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction(\n (str) => str.charAt(0).toUpperCase() + str.slice(1)\n);\nconst toHandlerKey = cacheStringFunction(\n (str) => str ? `on${capitalize(str)}` : ``\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `HYDRATE_EVENTS`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_WHITE_LISTED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console\";\nconst isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value)) {\n return value;\n } else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n", "import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect2) {\n const { deps } = effect2;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect2);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { effect: activeEffect, target, type, key } : void 0;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (!!(process.env.NODE_ENV !== \"production\") && activeEffect.onTrack) {\n activeEffect.onTrack(\n extend(\n {\n effect: activeEffect\n },\n debuggerEventExtraInfo\n )\n );\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { target, type, key, newValue, oldValue, oldTarget } : void 0;\n if (deps.length === 1) {\n if (deps[0]) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(deps[0], eventInfo);\n } else {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(createDep(effects), eventInfo);\n } else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect2 of effects) {\n if (effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n for (const effect2 of effects) {\n if (!effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect2, debuggerEventExtraInfo) {\n if (effect2 !== activeEffect || effect2.allowRecurse) {\n if (!!(process.env.NODE_ENV !== \"production\") && effect2.onTrigger) {\n effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n if (effect2.scheduler) {\n effect2.scheduler();\n } else {\n effect2.run();\n }\n }\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst get$1 = /* @__PURE__ */ createGetter();\nconst shallowGet = /* @__PURE__ */ createGetter(false, true);\nconst readonlyGet = /* @__PURE__ */ createGetter(true);\nconst shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nfunction createGetter(isReadonly2 = false, shallow = false) {\n return function get2(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set$1 = /* @__PURE__ */ createSetter();\nconst shallowSet = /* @__PURE__ */ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set2(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction has$1(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\", isArray(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get: get$1,\n set: set$1,\n deleteProperty,\n has: has$1,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n },\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /* @__PURE__ */ extend(\n {},\n mutableHandlers,\n {\n get: shallowGet,\n set: shallowSet\n }\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ extend(\n {},\n readonlyHandlers,\n {\n get: shallowReadonlyGet\n }\n);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n trackEffects(ref2.dep || (ref2.dep = createDep()), {\n target: ref2,\n type: \"get\",\n key: \"value\"\n });\n } else {\n trackEffects(ref2.dep || (ref2.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref2, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(dep, {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n });\n } else {\n triggerEffects(dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(\n source,\n key,\n defaultValue\n );\n}\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst tick = /* @__PURE__ */ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = void 0;\n this._dirty = true;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n } else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(\n true\n /* computedTrigger */\n );\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return this._value = this.effect.run();\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n return toRaw(this)._get();\n }\n}\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n", "import { pauseTracking, resetTracking, isRef, toRaw, getCurrentScope, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, capitalize, isGloballyWhitelisted, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? start = middle + 1 : end = middle;\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(\n render.call(\n proxyToUse,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, void 0];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else {\n suspense.pendingId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n const delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container2, anchor2, 0);\n }\n };\n }\n let { anchor: anchor2 } = suspense;\n if (activeBranch) {\n anchor2 = next(activeBranch);\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor2, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n isSVG2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n isSVG,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n document.createElement(\"div\"),\n null,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n /* hydrating */\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = vnode.el = branch.el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n var _a;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some(\n (v, i) => hasChanged(v, oldValue[i])\n ) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el._leaveCb) {\n el._leaveCb(\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n /* do not throw in dev if user provided error component */\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n isSVG,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, \"\"));\n warn(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n /* do not include inferred name to avoid breaking existing code */\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn(`Cannot mutate + + + - - + + -
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

Released under the MIT License.

- +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/assets/app.b069fff0.js b/docs/assets/app.b069fff0.js new file mode 100644 index 00000000..47139dae --- /dev/null +++ b/docs/assets/app.b069fff0.js @@ -0,0 +1 @@ +import{V as s,a4 as p,a5 as i,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as A,Y as g,d as P,u as v,j as y,A as C,ae as w,af as _,ag as b,ah as E}from"./chunks/framework.1eef7d9b.js";import{t as R}from"./chunks/theme.0b40695b.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const o=r(R),D=P({name:"VitePressApp",setup(){const{site:e}=v();return y(()=>{C(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),_(),b(),o.setup&&o.setup(),()=>E(o.Layout)}});async function j(){const e=S(),a=O();a.provide(i,e);const t=u(e.route);return a.provide(c,t),a.component("Content",l),a.component("ClientOnly",f),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:a,router:e,siteData:d}),{app:a,router:e,data:t}}function O(){return m(D)}function S(){let e=s,a;return h(t=>{let n=A(t);return n?(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),s&&(e=!1),g(()=>import(n),[])):null},o.NotFound)}s&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{j as createApp}; diff --git a/docs/assets/app.b785614f.js b/docs/assets/app.b785614f.js deleted file mode 100644 index 233efeea..00000000 --- a/docs/assets/app.b785614f.js +++ /dev/null @@ -1 +0,0 @@ -import{M as s,a4 as p,a5 as i,a6 as u,a7 as c,a8 as l,a9 as d,aa as f,ab as m,ac as h,ad as A,J as g,d as P,u as v,p as y,k as C,ae as w,af as _,ag as b,ah as E}from"./chunks/framework.fed62f4c.js";import{t as R}from"./chunks/theme.f05be701.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(R),D=P({name:"VitePressApp",setup(){const{site:e}=v();return y(()=>{C(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),_(),b(),n.setup&&n.setup(),()=>E(n.Layout)}});async function O(){const e=T(),a=S();a.provide(i,e);const t=u(e.route);return a.provide(c,t),a.component("Content",l),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:f}),{app:a,router:e,data:t}}function S(){return m(D)}function T(){let e=s,a;return h(t=>{let o=A(t);return e&&(a=o),(e||a===o)&&(o=o.replace(/\.js$/,".lean.js")),s&&(e=!1),g(()=>import(o),[])},n.NotFound)}s&&O().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{O as createApp}; diff --git a/docs/assets/chunks/VPAlgoliaSearchBox.2c3131d2.js b/docs/assets/chunks/VPAlgoliaSearchBox.456e474e.js similarity index 99% rename from docs/assets/chunks/VPAlgoliaSearchBox.2c3131d2.js rename to docs/assets/chunks/VPAlgoliaSearchBox.456e474e.js index e525905e..6e72be02 100644 --- a/docs/assets/chunks/VPAlgoliaSearchBox.2c3131d2.js +++ b/docs/assets/chunks/VPAlgoliaSearchBox.456e474e.js @@ -1,4 +1,4 @@ -import{d as fo,ai as mo,x as po,p as vo,w as ho,o as yo,c as go}from"./framework.fed62f4c.js";import{u as bo}from"./theme.f05be701.js";/*! @docsearch/js 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function cn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function I(t){for(var e=1;e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function st(t,e){return function(n){if(Array.isArray(n))return n}(t)||function(n,r){var o=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(o!=null){var i,a,u=[],c=!0,s=!1;try{for(o=o.call(n);!(c=(i=o.next()).done)&&(u.push(i.value),!r||u.length!==r);c=!0);}catch(l){s=!0,a=l}finally{try{c||o.return==null||o.return()}finally{if(s)throw a}}return u}}(t,e)||yr(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +import{d as fo,ai as mo,D as po,j as vo,z as ho,o as yo,c as go}from"./framework.1eef7d9b.js";import{u as bo}from"./theme.0b40695b.js";/*! @docsearch/js 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function cn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function I(t){for(var e=1;e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function st(t,e){return function(n){if(Array.isArray(n))return n}(t)||function(n,r){var o=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(o!=null){var i,a,u=[],c=!0,s=!1;try{for(o=o.call(n);!(c=(i=o.next()).done)&&(u.push(i.value),!r||u.length!==r);c=!0);}catch(l){s=!0,a=l}finally{try{c||o.return==null||o.return()}finally{if(s)throw a}}return u}}(t,e)||yr(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function ft(t){return function(e){if(Array.isArray(e))return Lt(e)}(t)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(t)||yr(t)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function yr(t,e){if(t){if(typeof t=="string")return Lt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Lt(t,e):void 0}}function Lt(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n3)for(n=[n],i=3;i0?Pe(v.type,v.props,v.key,null,v.__v):v)!=null){if(v.__=n,v.__b=n.__b+1,(p=b[l])===null||p&&v.key==p.key&&v.type===p.type)b[l]=void 0;else for(m=0;m<_;m++){if((p=b[m])&&v.key==p.key&&v.type===p.type){b[m]=void 0;break}p=null}Zt(t,v,p=p||mt,o,i,a,u,c,s),d=v.__e,(m=v.ref)&&p.ref!=m&&(y||(y=[]),p.ref&&y.push(p.ref,null,v),y.push(m,v.__c||d,v)),d!=null?(h==null&&(h=d),typeof v.type=="function"&&v.__k!=null&&v.__k===p.__k?v.__d=c=wr(v,c,t):c=jr(t,v,p,b,d,c),s||n.type!=="option"?typeof n.type=="function"&&(n.__d=c):t.value=""):c&&p.__e==c&&c.parentNode!=t&&(c=Ve(p))}for(n.__e=h,l=_;l--;)b[l]!=null&&(typeof n.type=="function"&&b[l].__e!=null&&b[l].__e==n.__d&&(n.__d=Ve(r,l+1)),Ir(b[l],b[l]));if(y)for(l=0;l3)for(n=[n],i=3;i=n.__.length&&n.__.push({}),n.__[t]}function kr(t){return pe=1,Ar(xr,t)}function Ar(t,e,n){var r=ze(de++,2);return r.t=t,r.__c||(r.__=[n?n(e):xr(void 0,e),function(o){var i=r.t(r.__[0],o);r.__[0]!==i&&(r.__=[i,r.__[1]],r.__c.setState({}))}],r.__c=q),r.__}function Cr(t,e){var n=ze(de++,3);!w.__s&&Yt(n.__H,e)&&(n.__=t,n.__H=e,q.__H.__h.push(n))}function gn(t,e){var n=ze(de++,4);!w.__s&&Yt(n.__H,e)&&(n.__=t,n.__H=e,q.__h.push(n))}function Pt(t,e){var n=ze(de++,7);return Yt(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function Po(){Ht.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(at),t.__H.__h.forEach(Ut),t.__H.__h=[]}catch(e){t.__H.__h=[],w.__e(e,t.__v)}}),Ht=[]}w.__b=function(t){q=null,pn&&pn(t)},w.__r=function(t){vn&&vn(t),de=0;var e=(q=t.__c).__H;e&&(e.__h.forEach(at),e.__h.forEach(Ut),e.__h=[])},w.diffed=function(t){dn&&dn(t);var e=t.__c;e&&e.__H&&e.__H.__h.length&&(Ht.push(e)!==1&&mn===w.requestAnimationFrame||((mn=w.requestAnimationFrame)||function(n){var r,o=function(){clearTimeout(i),bn&&cancelAnimationFrame(r),setTimeout(n)},i=setTimeout(o,100);bn&&(r=requestAnimationFrame(o))})(Po)),q=void 0},w.__c=function(t,e){e.some(function(n){try{n.__h.forEach(at),n.__h=n.__h.filter(function(r){return!r.__||Ut(r)})}catch(r){e.some(function(o){o.__h&&(o.__h=[])}),e=[],w.__e(r,n.__v)}}),hn&&hn(t,e)},w.unmount=function(t){yn&&yn(t);var e=t.__c;if(e&&e.__H)try{e.__H.__.forEach(at)}catch(n){w.__e(n,e.__v)}};var bn=typeof requestAnimationFrame=="function";function at(t){var e=q;typeof t.__c=="function"&&t.__c(),q=e}function Ut(t){var e=q;t.__c=t.__(),q=e}function Yt(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function xr(t,e){return typeof e=="function"?e(t):e}function Nr(t,e){for(var n in e)t[n]=e[n];return t}function Ft(t,e){for(var n in t)if(n!=="__source"&&!(n in e))return!0;for(var r in e)if(r!=="__source"&&t[r]!==e[r])return!0;return!1}function Bt(t){this.props=t}(Bt.prototype=new W).isPureReactComponent=!0,Bt.prototype.shouldComponentUpdate=function(t,e){return Ft(this.props,t)||Ft(this.state,e)};var _n=w.__b;w.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),_n&&_n(t)};var Io=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,On=function(t,e){return t==null?null:J(J(t).map(e))},Do={map:On,forEach:On,count:function(t){return t?J(t).length:0},only:function(t){var e=J(t);if(e.length!==1)throw"Children.only";return e[0]},toArray:J},ko=w.__e;function ct(){this.__u=0,this.t=null,this.__b=null}function Tr(t){var e=t.__.__c;return e&&e.__e&&e.__e(t)}function we(){this.u=null,this.o=null}w.__e=function(t,e,n){if(t.then){for(var r,o=e;o=o.__;)if((r=o.__c)&&r.__c)return e.__e==null&&(e.__e=n.__e,e.__k=n.__k),r.__c(t,e)}ko(t,e,n)},(ct.prototype=new W).__c=function(t,e){var n=e.__c,r=this;r.t==null&&(r.t=[]),r.t.push(n);var o=Tr(r.__v),i=!1,a=function(){i||(i=!0,n.componentWillUnmount=n.__c,o?o(u):u())};n.__c=n.componentWillUnmount,n.componentWillUnmount=function(){a(),n.__c&&n.__c()};var u=function(){if(!--r.__u){if(r.state.__e){var s=r.state.__e;r.__v.__k[0]=function m(p,v,d){return p&&(p.__v=null,p.__k=p.__k&&p.__k.map(function(h){return m(h,v,d)}),p.__c&&p.__c.__P===v&&(p.__e&&d.insertBefore(p.__e,p.__d),p.__c.__e=!0,p.__c.__P=d)),p}(s,s.__c.__P,s.__c.__O)}var l;for(r.setState({__e:r.__b=null});l=r.t.pop();)l.forceUpdate()}},c=e.__h===!0;r.__u++||c||r.setState({__e:r.__b=r.__v.__k[0]}),t.then(a,a)},ct.prototype.componentWillUnmount=function(){this.t=[]},ct.prototype.render=function(t,e){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function i(a,u,c){return a&&(a.__c&&a.__c.__H&&(a.__c.__H.__.forEach(function(s){typeof s.__c=="function"&&s.__c()}),a.__c.__H=null),(a=Nr({},a)).__c!=null&&(a.__c.__P===c&&(a.__c.__P=u),a.__c=null),a.__k=a.__k&&a.__k.map(function(s){return i(s,u,c)})),a}(this.__b,n,r.__O=r.__P)}this.__b=null}var o=e.__e&&V(X,null,t.fallback);return o&&(o.__h=null),[V(X,null,e.__e?null:t.children),o]};var Sn=function(t,e,n){if(++n[1]===n[0]&&t.o.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.o.size))for(n=t.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),e.i.removeChild(r)}}),We(V(Ao,{context:e.context},t.__v),e.l)):e.l&&e.componentWillUnmount()}function Rr(t,e){return V(Co,{__v:t,i:e})}(we.prototype=new W).__e=function(t){var e=this,n=Tr(e.__v),r=e.o.get(t);return r[0]++,function(o){var i=function(){e.props.revealOrder?(r.push(o),Sn(e,t,r)):o()};n?n(i):i()}},we.prototype.render=function(t){this.u=null,this.o=new Map;var e=J(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var n=e.length;n--;)this.o.set(e[n],this.u=[1,0,this.u]);return t.children},we.prototype.componentDidUpdate=we.prototype.componentDidMount=function(){var t=this;this.o.forEach(function(e,n){Sn(t,n,e)})};var qr=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,xo=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,No=function(t){return(typeof Symbol<"u"&&Be(Symbol())=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(t)};function Lr(t,e,n){return e.__k==null&&(e.textContent=""),We(t,e),typeof n=="function"&&n(),t?t.__c:null}W.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(W.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var wn=w.event;function To(){}function Ro(){return this.cancelBubble}function qo(){return this.defaultPrevented}w.event=function(t){return wn&&(t=wn(t)),t.persist=To,t.isPropagationStopped=Ro,t.isDefaultPrevented=qo,t.nativeEvent=t};var Mr,jn={configurable:!0,get:function(){return this.class}},En=w.vnode;w.vnode=function(t){var e=t.type,n=t.props,r=n;if(typeof e=="string"){for(var o in r={},n){var i=n[o];o==="value"&&"defaultValue"in n&&i==null||(o==="defaultValue"&&"value"in n&&n.value==null?o="value":o==="download"&&i===!0?i="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+e)&&!No(n.type)?o="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():xo.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():i===null&&(i=void 0),r[o]=i)}e=="select"&&r.multiple&&Array.isArray(r.value)&&(r.value=J(n.children).forEach(function(a){a.props.selected=r.value.indexOf(a.props.value)!=-1})),e=="select"&&r.defaultValue!=null&&(r.value=J(n.children).forEach(function(a){a.props.selected=r.multiple?r.defaultValue.indexOf(a.props.value)!=-1:r.defaultValue==a.props.value})),t.props=r}e&&n.class!=n.className&&(jn.enumerable="className"in n,n.className!=null&&(r.class=n.className),Object.defineProperty(r,"className",jn)),t.$$typeof=qr,En&&En(t)};var Pn=w.__r;w.__r=function(t){Pn&&Pn(t),Mr=t.__c};var Lo={ReactCurrentDispatcher:{current:{readContext:function(t){return Mr.__n[t.__c].props.value}}}};(typeof performance>"u"?"undefined":Be(performance))=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);function In(t){return!!t&&t.$$typeof===qr}var f={useState:kr,useReducer:Ar,useEffect:Cr,useLayoutEffect:gn,useRef:function(t){return pe=5,Pt(function(){return{current:t}},[])},useImperativeHandle:function(t,e,n){pe=6,gn(function(){typeof t=="function"?t(e()):t&&(t.current=e())},n==null?n:n.concat(t))},useMemo:Pt,useCallback:function(t,e){return pe=8,Pt(function(){return t},e)},useContext:function(t){var e=q.context[t.__c],n=ze(de++,9);return n.__c=t,e?(n.__==null&&(n.__=!0,e.sub(q)),e.props.value):t.__},useDebugValue:function(t,e){w.useDebugValue&&w.useDebugValue(e?e(t):t)},version:"16.8.0",Children:Do,render:Lr,hydrate:function(t,e,n){return Dr(t,e),typeof n=="function"&&n(),t?t.__c:null},unmountComponentAtNode:function(t){return!!t.__k&&(We(null,t),!0)},createPortal:Rr,createElement:V,createContext:function(t,e){var n={__c:e="__cC"+br++,__:t,Consumer:function(r,o){return r.children(o)},Provider:function(r){var o,i;return this.getChildContext||(o=[],(i={})[e]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(a){this.props.value!==a.value&&o.some(Mt)},this.sub=function(a){o.push(a);var u=a.componentWillUnmount;a.componentWillUnmount=function(){o.splice(o.indexOf(a),1),u&&u.call(a)}}),r.children}};return n.Provider.__=n.Consumer.contextType=n},createFactory:function(t){return V.bind(null,t)},cloneElement:function(t){return In(t)?Eo.apply(null,arguments):t},createRef:function(){return{current:null}},Fragment:X,isValidElement:In,findDOMNode:function(t){return t&&(t.base||t.nodeType===1&&t)||null},Component:W,PureComponent:Bt,memo:function(t,e){function n(o){var i=this.props.ref,a=i==o.ref;return!a&&i&&(i.call?i(null):i.current=null),e?!e(this.props,o)||!a:Ft(this.props,o)}function r(o){return this.shouldComponentUpdate=n,V(t,o)}return r.displayName="Memo("+(t.displayName||t.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r},forwardRef:function(t){function e(n,r){var o=Nr({},n);return delete o.ref,t(o,(r=n.ref||r)&&(Be(r)!="object"||"current"in r)?r:null)}return e.$$typeof=Io,e.render=e,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(t.displayName||t.name)+")",e},unstable_batchedUpdates:function(t,e){return t(e)},StrictMode:X,Suspense:ct,SuspenseList:we,lazy:function(t){var e,n,r;function o(i){if(e||(e=t()).then(function(a){n=a.default||a},function(a){r=a}),r)throw r;if(!n)throw e;return V(n,i)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Lo};function Mo(){return f.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},f.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function Hr(){return f.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},f.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var Ho=["translations"];function Vt(){return Vt=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var Bo=f.forwardRef(function(t,e){var n=t.translations,r=n===void 0?{}:n,o=Fo(t,Ho),i=r.buttonText,a=i===void 0?"Search":i,u=r.buttonAriaLabel,c=u===void 0?"Search":u,s=Uo(kr(null),2),l=s[0],m=s[1];return Cr(function(){typeof navigator<"u"&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?m("⌘"):m("Ctrl"))},[]),f.createElement("button",Vt({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:e}),f.createElement("span",{className:"DocSearch-Button-Container"},f.createElement(Hr,null),f.createElement("span",{className:"DocSearch-Button-Placeholder"},a)),f.createElement("span",{className:"DocSearch-Button-Keys"},l!==null&&f.createElement(f.Fragment,null,f.createElement("kbd",{className:"DocSearch-Button-Key"},l==="Ctrl"?f.createElement(Mo,null):l),f.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))});function Ur(t,e){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),i=0;i!!n[r.toLowerCase()]:r=>!!n[r]}const te={},ft=[],Pe=()=>{},Ei=()=>!1,Ti=/^on[^a-z]/,$t=e=>Ti.test(e),Jn=e=>e.startsWith("onUpdate:"),oe=Object.assign,Xn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ai=Object.prototype.hasOwnProperty,q=(e,t)=>Ai.call(e,t),N=Array.isArray,at=e=>an(e)==="[object Map]",pr=e=>an(e)==="[object Set]",j=e=>typeof e=="function",re=e=>typeof e=="string",Zn=e=>typeof e=="symbol",ee=e=>e!==null&&typeof e=="object",gr=e=>ee(e)&&j(e.then)&&j(e.catch),mr=Object.prototype.toString,an=e=>mr.call(e),Ri=e=>an(e).slice(8,-1),_r=e=>an(e)==="[object Object]",Qn=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=Yn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),un=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Pi=/-(\w)/g,Me=un(e=>e.replace(Pi,(t,n)=>n?n.toUpperCase():"")),Ii=/\B([A-Z])/g,rt=un(e=>e.replace(Ii,"-$1").toLowerCase()),dn=un(e=>e.charAt(0).toUpperCase()+e.slice(1)),Xt=un(e=>e?`on${dn(e)}`:""),Ft=(e,t)=>!Object.is(e,t),Tn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Oi=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Fi=e=>{const t=re(e)?Number(e):NaN;return isNaN(t)?e:t};let xs;const Nn=()=>xs||(xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Gn(e){if(N(e)){const t={};for(let n=0;n{if(n){const s=n.split(Mi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function es(e){let t="";if(re(e))t=e;else if(N(e))for(let n=0;nre(e)?e:e==null?"":N(e)||ee(e)&&(e.toString===mr||!j(e.toString))?JSON.stringify(e,yr,2):String(e),yr=(e,t)=>t&&t.__v_isRef?yr(e,t.value):at(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:pr(t)?{[`Set(${t.size})`]:[...t.values()]}:ee(t)&&!N(t)&&!_r(t)?String(t):t;let _e;class Bi{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=_e;try{return _e=this,t()}finally{_e=n}}}on(){_e=this}off(){_e=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},vr=e=>(e.w&Ve)>0,wr=e=>(e.n&Ve)>0,Di=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(d==="length"||d>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":N(e)?Qn(n)&&l.push(o.get("length")):(l.push(o.get(nt)),at(e)&&l.push(o.get(Hn)));break;case"delete":N(e)||(l.push(o.get(nt)),at(e)&&l.push(o.get(Hn)));break;case"set":at(e)&&l.push(o.get(nt));break}if(l.length===1)l[0]&&Bn(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Bn(ts(c))}}function Bn(e,t){const n=N(e)?e:[...e];for(const s of n)s.computed&&Ts(s);for(const s of n)s.computed||Ts(s)}function Ts(e,t){(e!==Ae||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function ki(e,t){var n;return(n=tn.get(e))==null?void 0:n.get(t)}const Wi=Yn("__proto__,__v_isRef,__isVue"),Er=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Zn)),Vi=ss(),qi=ss(!1,!0),zi=ss(!0),As=Yi();function Yi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=z(this);for(let i=0,o=this.length;i{e[t]=function(...n){vt();const s=z(this)[t].apply(this,n);return wt(),s}}),e}function Ji(e){const t=z(this);return pe(t,"has",e),t.hasOwnProperty(e)}function ss(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?uo:Ir:t?Pr:Rr).get(s))return s;const o=N(s);if(!e){if(o&&q(As,r))return Reflect.get(As,r,i);if(r==="hasOwnProperty")return Ji}const l=Reflect.get(s,r,i);return(Zn(r)?Er.has(r):Wi(r))||(e||pe(s,"get",r),t)?l:ce(l)?o&&Qn(r)?l:l.value:ee(l)?e?Or(l):pn(l):l}}const Xi=Tr(),Zi=Tr(!0);function Tr(e=!1){return function(n,s,r,i){let o=n[s];if(mt(o)&&ce(o)&&!ce(r))return!1;if(!e&&(!nn(r)&&!mt(r)&&(o=z(o),r=z(r)),!N(n)&&ce(o)&&!ce(r)))return o.value=r,!0;const l=N(n)&&Qn(s)?Number(s)e,hn=e=>Reflect.getPrototypeOf(e);function Dt(e,t,n=!1,s=!1){e=e.__v_raw;const r=z(e),i=z(t);n||(t!==i&&pe(r,"get",t),pe(r,"get",i));const{has:o}=hn(r),l=s?rs:n?ls:St;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Kt(e,t=!1){const n=this.__v_raw,s=z(n),r=z(e);return t||(e!==r&&pe(s,"has",e),pe(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function kt(e,t=!1){return e=e.__v_raw,!t&&pe(z(e),"iterate",nt),Reflect.get(e,"size",e)}function Rs(e){e=z(e);const t=z(this);return hn(t).has.call(t,e)||(t.add(e),$e(t,"add",e,e)),this}function Ps(e,t){t=z(t);const n=z(this),{has:s,get:r}=hn(n);let i=s.call(n,e);i||(e=z(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Ft(t,o)&&$e(n,"set",e,t):$e(n,"add",e,t),this}function Is(e){const t=z(this),{has:n,get:s}=hn(t);let r=n.call(t,e);r||(e=z(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&$e(t,"delete",e,void 0),i}function Os(){const e=z(this),t=e.size!==0,n=e.clear();return t&&$e(e,"clear",void 0,void 0),n}function Wt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=z(o),c=t?rs:e?ls:St;return!e&&pe(l,"iterate",nt),o.forEach((a,d)=>s.call(r,c(a),c(d),i))}}function Vt(e,t,n){return function(...s){const r=this.__v_raw,i=z(r),o=at(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,a=r[e](...s),d=n?rs:t?ls:St;return!t&&pe(i,"iterate",c?Hn:nt),{next(){const{value:p,done:v}=a.next();return v?{value:p,done:v}:{value:l?[d(p[0]),d(p[1])]:d(p),done:v}},[Symbol.iterator](){return this}}}}function Be(e){return function(...t){return e==="delete"?!1:this}}function so(){const e={get(i){return Dt(this,i)},get size(){return kt(this)},has:Kt,add:Rs,set:Ps,delete:Is,clear:Os,forEach:Wt(!1,!1)},t={get(i){return Dt(this,i,!1,!0)},get size(){return kt(this)},has:Kt,add:Rs,set:Ps,delete:Is,clear:Os,forEach:Wt(!1,!0)},n={get(i){return Dt(this,i,!0)},get size(){return kt(this,!0)},has(i){return Kt.call(this,i,!0)},add:Be("add"),set:Be("set"),delete:Be("delete"),clear:Be("clear"),forEach:Wt(!0,!1)},s={get(i){return Dt(this,i,!0,!0)},get size(){return kt(this,!0)},has(i){return Kt.call(this,i,!0)},add:Be("add"),set:Be("set"),delete:Be("delete"),clear:Be("clear"),forEach:Wt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Vt(i,!1,!1),n[i]=Vt(i,!0,!1),t[i]=Vt(i,!1,!0),s[i]=Vt(i,!0,!0)}),[e,n,t,s]}const[ro,io,oo,lo]=so();function is(e,t){const n=t?e?lo:oo:e?io:ro;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(q(n,r)&&r in s?n:s,r,i)}const co={get:is(!1,!1)},fo={get:is(!1,!0)},ao={get:is(!0,!1)},Rr=new WeakMap,Pr=new WeakMap,Ir=new WeakMap,uo=new WeakMap;function ho(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function po(e){return e.__v_skip||!Object.isExtensible(e)?0:ho(Ri(e))}function pn(e){return mt(e)?e:os(e,!1,Ar,co,Rr)}function go(e){return os(e,!1,no,fo,Pr)}function Or(e){return os(e,!0,to,ao,Ir)}function os(e,t,n,s,r){if(!ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=po(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function ut(e){return mt(e)?ut(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function nn(e){return!!(e&&e.__v_isShallow)}function Fr(e){return ut(e)||mt(e)}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Rt(e){return en(e,"__v_skip",!0),e}const St=e=>ee(e)?pn(e):e,ls=e=>ee(e)?Or(e):e;function cs(e){ke&&Ae&&(e=z(e),xr(e.dep||(e.dep=ts())))}function fs(e,t){e=z(e);const n=e.dep;n&&Bn(n)}function ce(e){return!!(e&&e.__v_isRef===!0)}function dt(e){return Sr(e,!1)}function mo(e){return Sr(e,!0)}function Sr(e,t){return ce(e)?e:new _o(e,t)}class _o{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:z(t),this._value=n?t:St(t)}get value(){return cs(this),this._value}set value(t){const n=this.__v_isShallow||nn(t)||mt(t);t=n?t:z(t),Ft(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:St(t),fs(this))}}function bo(e){return ce(e)?e.value:e}const yo={get:(e,t,n)=>bo(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ce(r)&&!ce(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Mr(e){return ut(e)?e:new Proxy(e,yo)}class vo{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>cs(this),()=>fs(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Mc(e){return new vo(e)}class wo{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,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 ki(z(this._object),this._key)}}class Co{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Lc(e,t,n){return ce(e)?e:j(e)?new Co(e):ee(e)&&arguments.length>1?xo(e,t,n):dt(e)}function xo(e,t,n){const s=e[t];return ce(s)?s:new wo(e,t,n)}class Eo{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new ns(t,()=>{this._dirty||(this._dirty=!0,fs(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=z(this);return cs(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function To(e,t,n=!1){let s,r;const i=j(e);return i?(s=e,r=Pe):(s=e.get,r=e.set),new Eo(s,r,i||!r,n)}function We(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){Ht(i,t,n)}return r}function Ce(e,t,n,s){if(j(e)){const i=We(e,t,n,s);return i&&gr(i)&&i.catch(o=>{Ht(o,t,n)}),i}const r=[];for(let i=0;i>>1;Lt(fe[s])Se&&fe.splice(t,1)}function Io(e){N(e)?ht.push(...e):(!Ne||!Ne.includes(e,e.allowRecurse?Qe+1:Qe))&&ht.push(e),$r()}function Fs(e,t=Mt?Se+1:0){for(;tLt(n)-Lt(s)),Qe=0;Qee.id==null?1/0:e.id,Oo=(e,t)=>{const n=Lt(e)-Lt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Hr(e){Un=!1,Mt=!0,fe.sort(Oo);const t=Pe;try{for(Se=0;Sere(E)?E.trim():E)),p&&(r=n.map(Oi))}let l,c=s[l=Xt(t)]||s[l=Xt(Me(t))];!c&&i&&(c=s[l=Xt(rt(t))]),c&&Ce(c,e,6,r);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ce(a,e,6,r)}}function Br(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!j(e)){const c=a=>{const d=Br(a,t,!0);d&&(l=!0,oe(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ee(e)&&s.set(e,null),null):(N(i)?i.forEach(c=>o[c]=null):oe(o,i),ee(e)&&s.set(e,o),o)}function mn(e,t){return!e||!$t(t)?!1:(t=t.slice(2).replace(/Once$/,""),q(e,t[0].toLowerCase()+t.slice(1))||q(e,rt(t))||q(e,t))}let ae=null,_n=null;function rn(e){const t=ae;return ae=e,_n=e&&e.type.__scopeId||null,t}function Nc(e){_n=e}function $c(){_n=null}function So(e,t=ae,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&ks(-1);const i=rn(t);let o;try{o=e(...r)}finally{rn(i),s._d&&ks(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function An(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:a,render:d,renderCache:p,data:v,setupState:E,ctx:R,inheritAttrs:I}=e;let $,_;const b=rn(e);try{if(n.shapeFlag&4){const P=r||s;$=Te(d.call(P,P,p,i,E,v,R)),_=c}else{const P=t;$=Te(P.length>1?P(i,{attrs:c,slots:l,emit:a}):P(i,null)),_=t.props?c:Mo(c)}}catch(P){Ot.length=0,Ht(P,e,1),$=se(be)}let H=$;if(_&&I!==!1){const P=Object.keys(_),{shapeFlag:K}=H;P.length&&K&7&&(o&&P.some(Jn)&&(_=Lo(_,o)),H=qe(H,_))}return n.dirs&&(H=qe(H),H.dirs=H.dirs?H.dirs.concat(n.dirs):n.dirs),n.transition&&(H.transition=n.transition),$=H,rn(b),$}const Mo=e=>{let t;for(const n in e)(n==="class"||n==="style"||$t(n))&&((t||(t={}))[n]=e[n]);return t},Lo=(e,t)=>{const n={};for(const s in e)(!Jn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function No(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Ss(s,o,a):!!o;if(c&8){const d=t.dynamicProps;for(let p=0;pe.__isSuspense;function Ur(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):Io(e)}function Bo(e,t){return bn(e,null,t)}function Hc(e,t){return bn(e,null,{flush:"post"})}const qt={};function Zt(e,t,n){return bn(e,t,n)}function bn(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=te){var l;const c=ji()===((l=le)==null?void 0:l.scope)?le:null;let a,d=!1,p=!1;if(ce(e)?(a=()=>e.value,d=nn(e)):ut(e)?(a=()=>e,s=!0):N(e)?(p=!0,d=e.some(P=>ut(P)||nn(P)),a=()=>e.map(P=>{if(ce(P))return P.value;if(ut(P))return ct(P);if(j(P))return We(P,c,2)})):j(e)?t?a=()=>We(e,c,2):a=()=>{if(!(c&&c.isUnmounted))return v&&v(),Ce(e,c,3,[E])}:a=Pe,t&&s){const P=a;a=()=>ct(P())}let v,E=P=>{v=b.onStop=()=>{We(P,c,4)}},R;if(yt)if(E=Pe,t?n&&Ce(t,c,3,[a(),p?[]:void 0,E]):a(),r==="sync"){const P=Sl();R=P.__watcherHandles||(P.__watcherHandles=[])}else return Pe;let I=p?new Array(e.length).fill(qt):qt;const $=()=>{if(b.active)if(t){const P=b.run();(s||d||(p?P.some((K,J)=>Ft(K,I[J])):Ft(P,I)))&&(v&&v(),Ce(t,c,3,[P,I===qt?void 0:p&&I[0]===qt?[]:I,E]),I=P)}else b.run()};$.allowRecurse=!!t;let _;r==="sync"?_=$:r==="post"?_=()=>de($,c&&c.suspense):($.pre=!0,c&&($.id=c.uid),_=()=>gn($));const b=new ns(a,_);t?n?$():I=b.run():r==="post"?de(b.run.bind(b),c&&c.suspense):b.run();const H=()=>{b.stop(),c&&c.scope&&Xn(c.scope.effects,b)};return R&&R.push(H),H}function Uo(e,t,n){const s=this.proxy,r=re(e)?e.includes(".")?jr(s,e):()=>s[e]:e.bind(s,s);let i;j(t)?i=t:(i=t.handler,n=t);const o=le;bt(this);const l=bn(r,i.bind(s),n);return o?bt(o):st(),l}function jr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{ct(n,t)});else if(_r(e))for(const n in e)ct(e[n],t);return e}function Fe(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),Vr(()=>{e.isUnmounting=!0}),e}const ye=[Function,Array],Dr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ye,onEnter:ye,onAfterEnter:ye,onEnterCancelled:ye,onBeforeLeave:ye,onLeave:ye,onAfterLeave:ye,onLeaveCancelled:ye,onBeforeAppear:ye,onAppear:ye,onAfterAppear:ye,onAppearCancelled:ye},Do={name:"BaseTransition",props:Dr,setup(e,{slots:t}){const n=fi(),s=jo();let r;return()=>{const i=t.default&&kr(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const I of i)if(I.type!==be){o=I;break}}const l=z(e),{mode:c}=l;if(s.isLeaving)return Rn(o);const a=Ms(o);if(!a)return Rn(o);const d=jn(a,l,s,n);Dn(a,d);const p=n.subTree,v=p&&Ms(p);let E=!1;const{getTransitionKey:R}=a.type;if(R){const I=R();r===void 0?r=I:I!==r&&(r=I,E=!0)}if(v&&v.type!==be&&(!Ge(a,v)||E)){const I=jn(v,l,s,n);if(Dn(v,I),c==="out-in")return s.isLeaving=!0,I.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},Rn(o);c==="in-out"&&a.type!==be&&(I.delayLeave=($,_,b)=>{const H=Kr(s,v);H[String(v.key)]=v,$._leaveCb=()=>{_(),$._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=b})}return o}}},Ko=Do;function Kr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function jn(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:p,onLeave:v,onAfterLeave:E,onLeaveCancelled:R,onBeforeAppear:I,onAppear:$,onAfterAppear:_,onAppearCancelled:b}=t,H=String(e.key),P=Kr(n,e),K=(A,D)=>{A&&Ce(A,s,9,D)},J=(A,D)=>{const U=D[1];K(A,D),N(A)?A.every(Y=>Y.length<=1)&&U():A.length<=1&&U()},V={mode:i,persisted:o,beforeEnter(A){let D=l;if(!n.isMounted)if(r)D=I||l;else return;A._leaveCb&&A._leaveCb(!0);const U=P[H];U&&Ge(e,U)&&U.el._leaveCb&&U.el._leaveCb(),K(D,[A])},enter(A){let D=c,U=a,Y=d;if(!n.isMounted)if(r)D=$||c,U=_||a,Y=b||d;else return;let O=!1;const k=A._enterCb=S=>{O||(O=!0,S?K(Y,[A]):K(U,[A]),V.delayedLeave&&V.delayedLeave(),A._enterCb=void 0)};D?J(D,[A,k]):k()},leave(A,D){const U=String(e.key);if(A._enterCb&&A._enterCb(!0),n.isUnmounting)return D();K(p,[A]);let Y=!1;const O=A._leaveCb=k=>{Y||(Y=!0,D(),k?K(R,[A]):K(E,[A]),A._leaveCb=void 0,P[U]===e&&delete P[U])};P[U]=e,v?J(v,[A,O]):O()},clone(A){return jn(A,t,n,s)}};return V}function Rn(e){if(Bt(e))return e=qe(e),e.children=null,e}function Ms(e){return Bt(e)?e.children?e.children[0]:void 0:e}function Dn(e,t){e.shapeFlag&6&&e.component?Dn(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 kr(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;ioe({name:e.name},t,{setup:e}))():e}const pt=e=>!!e.type.__asyncLoader;function Bc(e){j(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,timeout:i,suspensible:o=!0,onError:l}=e;let c=null,a,d=0;const p=()=>(d++,c=null,v()),v=()=>{let E;return c||(E=c=t().catch(R=>{if(R=R instanceof Error?R:new Error(String(R)),l)return new Promise((I,$)=>{l(R,()=>I(p()),()=>$(R),d+1)});throw R}).then(R=>E!==c&&c?c:(R&&(R.__esModule||R[Symbol.toStringTag]==="Module")&&(R=R.default),a=R,R)))};return us({name:"AsyncComponentWrapper",__asyncLoader:v,get __asyncResolved(){return a},setup(){const E=le;if(a)return()=>Pn(a,E);const R=b=>{c=null,Ht(b,E,13,!s)};if(o&&E.suspense||yt)return v().then(b=>()=>Pn(b,E)).catch(b=>(R(b),()=>s?se(s,{error:b}):null));const I=dt(!1),$=dt(),_=dt(!!r);return r&&setTimeout(()=>{_.value=!1},r),i!=null&&setTimeout(()=>{if(!I.value&&!$.value){const b=new Error(`Async component timed out after ${i}ms.`);R(b),$.value=b}},i),v().then(()=>{I.value=!0,E.parent&&Bt(E.parent.vnode)&&gn(E.parent.update)}).catch(b=>{R(b),$.value=b}),()=>{if(I.value&&a)return Pn(a,E);if($.value&&s)return se(s,{error:$.value});if(n&&!_.value)return se(n)}}})}function Pn(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=se(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const Bt=e=>e.type.__isKeepAlive;function ko(e,t){Wr(e,"a",t)}function Wo(e,t){Wr(e,"da",t)}function Wr(e,t,n=le){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(yn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Bt(r.parent.vnode)&&Vo(s,t,n,r),r=r.parent}}function Vo(e,t,n,s){const r=yn(t,e,s,!0);wn(()=>{Xn(s[t],r)},n)}function yn(e,t,n=le,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;vt(),bt(n);const l=Ce(t,n,e,o);return st(),wt(),l});return s?r.unshift(i):r.push(i),i}}const He=e=>(t,n=le)=>(!yt||e==="sp")&&yn(e,(...s)=>t(...s),n),qo=He("bm"),vn=He("m"),zo=He("bu"),Yo=He("u"),Vr=He("bum"),wn=He("um"),Jo=He("sp"),Xo=He("rtg"),Zo=He("rtc");function Qo(e,t=le){yn("ec",e,t)}const ds="components";function Uc(e,t){return zr(ds,e,!0,t)||e}const qr=Symbol.for("v-ndc");function jc(e){return re(e)?zr(ds,e,!1)||e:e||qr}function zr(e,t,n=!0,s=!1){const r=ae||le;if(r){const i=r.type;if(e===ds){const l=Il(i,!1);if(l&&(l===t||l===Me(t)||l===dn(Me(t))))return i}const o=Ls(r[e]||i[e],t)||Ls(r.appContext[e],t);return!o&&s?i:o}}function Ls(e,t){return e&&(e[t]||e[Me(t)]||e[dn(Me(t))])}function Dc(e,t,n,s){let r;const i=n&&n[s];if(N(e)||re(e)){r=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lfn(t)?!(t.type===be||t.type===he&&!Yr(t.children)):!0)?e:null}function kc(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:Xt(s)]=e[s];return n}const Kn=e=>e?ai(e)?_s(e)||e.proxy:Kn(e.parent):null,Pt=oe(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=>Kn(e.parent),$root:e=>Kn(e.root),$emit:e=>e.emit,$options:e=>hs(e),$forceUpdate:e=>e.f||(e.f=()=>gn(e.update)),$nextTick:e=>e.n||(e.n=Nr.bind(e.proxy)),$watch:e=>Uo.bind(e)}),In=(e,t)=>e!==te&&!e.__isScriptSetup&&q(e,t),Go={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const E=o[t];if(E!==void 0)switch(E){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(In(s,t))return o[t]=1,s[t];if(r!==te&&q(r,t))return o[t]=2,r[t];if((a=e.propsOptions[0])&&q(a,t))return o[t]=3,i[t];if(n!==te&&q(n,t))return o[t]=4,n[t];kn&&(o[t]=0)}}const d=Pt[t];let p,v;if(d)return t==="$attrs"&&pe(e,"get",t),d(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==te&&q(n,t))return o[t]=4,n[t];if(v=c.config.globalProperties,q(v,t))return v[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return In(r,t)?(r[t]=n,!0):s!==te&&q(s,t)?(s[t]=n,!0):q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==te&&q(e,o)||In(t,o)||(l=i[0])&&q(l,o)||q(s,o)||q(Pt,o)||q(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Wc(){return el().slots}function el(){const e=fi();return e.setupContext||(e.setupContext=di(e))}function Ns(e){return N(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let kn=!0;function tl(e){const t=hs(e),n=e.proxy,s=e.ctx;kn=!1,t.beforeCreate&&$s(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:a,created:d,beforeMount:p,mounted:v,beforeUpdate:E,updated:R,activated:I,deactivated:$,beforeDestroy:_,beforeUnmount:b,destroyed:H,unmounted:P,render:K,renderTracked:J,renderTriggered:V,errorCaptured:A,serverPrefetch:D,expose:U,inheritAttrs:Y,components:O,directives:k,filters:S}=t;if(a&&nl(a,s,null),o)for(const ne in o){const Q=o[ne];j(Q)&&(s[ne]=Q.bind(n))}if(r){const ne=r.call(n,n);ee(ne)&&(e.data=pn(ne))}if(kn=!0,i)for(const ne in i){const Q=i[ne],ze=j(Q)?Q.bind(n,n):j(Q.get)?Q.get.bind(n,n):Pe,Ut=!j(Q)&&j(Q.set)?Q.set.bind(n):Pe,Ye=Ee({get:ze,set:Ut});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>Ye.value,set:Ie=>Ye.value=Ie})}if(l)for(const ne in l)Jr(l[ne],s,n,ne);if(c){const ne=j(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(Q=>{cl(Q,ne[Q])})}d&&$s(d,e,"c");function X(ne,Q){N(Q)?Q.forEach(ze=>ne(ze.bind(n))):Q&&ne(Q.bind(n))}if(X(qo,p),X(vn,v),X(zo,E),X(Yo,R),X(ko,I),X(Wo,$),X(Qo,A),X(Zo,J),X(Xo,V),X(Vr,b),X(wn,P),X(Jo,D),N(U))if(U.length){const ne=e.exposed||(e.exposed={});U.forEach(Q=>{Object.defineProperty(ne,Q,{get:()=>n[Q],set:ze=>n[Q]=ze})})}else e.exposed||(e.exposed={});K&&e.render===Pe&&(e.render=K),Y!=null&&(e.inheritAttrs=Y),O&&(e.components=O),k&&(e.directives=k)}function nl(e,t,n=Pe){N(e)&&(e=Wn(e));for(const s in e){const r=e[s];let i;ee(r)?"default"in r?i=gt(r.from||s,r.default,!0):i=gt(r.from||s):i=gt(r),ce(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function $s(e,t,n){Ce(N(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Jr(e,t,n,s){const r=s.includes(".")?jr(n,s):()=>n[s];if(re(e)){const i=t[e];j(i)&&Zt(r,i)}else if(j(e))Zt(r,e.bind(n));else if(ee(e))if(N(e))e.forEach(i=>Jr(i,t,n,s));else{const i=j(e.handler)?e.handler.bind(n):t[e.handler];j(i)&&Zt(r,i,e)}}function hs(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(a=>on(c,a,o,!0)),on(c,t,o)),ee(t)&&i.set(t,c),c}function on(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&on(e,i,n,!0),r&&r.forEach(o=>on(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=sl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const sl={data:Hs,props:Bs,emits:Bs,methods:Tt,computed:Tt,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:Tt,directives:Tt,watch:il,provide:Hs,inject:rl};function Hs(e,t){return t?e?function(){return oe(j(e)?e.call(this,this):e,j(t)?t.call(this,this):t)}:t:e}function rl(e,t){return Tt(Wn(e),Wn(t))}function Wn(e){if(N(e)){const t={};for(let n=0;n1)return n&&j(t)?t.call(s&&s.proxy):t}}function fl(e,t,n,s=!1){const r={},i={};en(i,Cn,1),e.propsDefaults=Object.create(null),Zr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:go(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function al(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=z(r),[c]=e.propsOptions;let a=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let p=0;p{c=!0;const[v,E]=Qr(p,t,!0);oe(o,v),E&&l.push(...E)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return ee(e)&&s.set(e,ft),ft;if(N(i))for(let d=0;d-1,E[1]=I<0||R-1||q(E,"default"))&&l.push(p)}}}const a=[o,l];return ee(e)&&s.set(e,a),a}function Us(e){return e[0]!=="$"}function js(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Ds(e,t){return js(e)===js(t)}function Ks(e,t){return N(t)?t.findIndex(n=>Ds(n,e)):j(t)&&Ds(t,e)?0:-1}const Gr=e=>e[0]==="_"||e==="$stable",ps=e=>N(e)?e.map(Te):[Te(e)],ul=(e,t,n)=>{if(t._n)return t;const s=So((...r)=>ps(t(...r)),n);return s._c=!1,s},ei=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Gr(r))continue;const i=e[r];if(j(i))t[r]=ul(r,i,s);else if(i!=null){const o=ps(i);t[r]=()=>o}}},ti=(e,t)=>{const n=ps(t);e.slots.default=()=>n},dl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=z(t),en(t,"_",n)):ei(t,e.slots={})}else e.slots={},t&&ti(e,t);en(e.slots,Cn,1)},hl=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=te;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(oe(r,t),!n&&l===1&&delete r._):(i=!t.$stable,ei(t,r)),o=t}else t&&(ti(e,t),o={default:1});if(i)for(const l in r)!Gr(l)&&!(l in o)&&delete r[l]};function cn(e,t,n,s,r=!1){if(N(e)){e.forEach((v,E)=>cn(v,t&&(N(t)?t[E]:t),n,s,r));return}if(pt(s)&&!r)return;const i=s.shapeFlag&4?_s(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,a=t&&t.r,d=l.refs===te?l.refs={}:l.refs,p=l.setupState;if(a!=null&&a!==c&&(re(a)?(d[a]=null,q(p,a)&&(p[a]=null)):ce(a)&&(a.value=null)),j(c))We(c,l,12,[o,d]);else{const v=re(c),E=ce(c);if(v||E){const R=()=>{if(e.f){const I=v?q(p,c)?p[c]:d[c]:c.value;r?N(I)&&Xn(I,i):N(I)?I.includes(i)||I.push(i):v?(d[c]=[i],q(p,c)&&(p[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else v?(d[c]=o,q(p,c)&&(p[c]=o)):E&&(c.value=o,e.k&&(d[e.k]=o))};o?(R.id=-1,de(R,n)):R()}}}let Ue=!1;const zt=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Yt=e=>e.nodeType===8;function pl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:a}}=e,d=(_,b)=>{if(!b.hasChildNodes()){n(null,_,b),sn(),b._vnode=_;return}Ue=!1,p(b.firstChild,_,null,null,null),sn(),b._vnode=_,Ue&&console.error("Hydration completed but contains mismatches.")},p=(_,b,H,P,K,J=!1)=>{const V=Yt(_)&&_.data==="[",A=()=>I(_,b,H,P,K,V),{type:D,ref:U,shapeFlag:Y,patchFlag:O}=b;let k=_.nodeType;b.el=_,O===-2&&(J=!1,b.dynamicChildren=null);let S=null;switch(D){case _t:k!==3?b.children===""?(c(b.el=r(""),o(_),_),S=_):S=A():(_.data!==b.children&&(Ue=!0,_.data=b.children),S=i(_));break;case be:k!==8||V?S=A():S=i(_);break;case It:if(V&&(_=i(_),k=_.nodeType),k===1||k===3){S=_;const ge=!b.children.length;for(let X=0;X{J=J||!!b.dynamicChildren;const{type:V,props:A,patchFlag:D,shapeFlag:U,dirs:Y}=b,O=V==="input"&&Y||V==="option";if(O||D!==-1){if(Y&&Fe(b,null,H,"created"),A)if(O||!J||D&48)for(const S in A)(O&&S.endsWith("value")||$t(S)&&!At(S))&&s(_,S,null,A[S],!1,void 0,H);else A.onClick&&s(_,"onClick",null,A.onClick,!1,void 0,H);let k;if((k=A&&A.onVnodeBeforeMount)&&ve(k,H,b),Y&&Fe(b,null,H,"beforeMount"),((k=A&&A.onVnodeMounted)||Y)&&Ur(()=>{k&&ve(k,H,b),Y&&Fe(b,null,H,"mounted")},P),U&16&&!(A&&(A.innerHTML||A.textContent))){let S=E(_.firstChild,b,_,H,P,K,J);for(;S;){Ue=!0;const ge=S;S=S.nextSibling,l(ge)}}else U&8&&_.textContent!==b.children&&(Ue=!0,_.textContent=b.children)}return _.nextSibling},E=(_,b,H,P,K,J,V)=>{V=V||!!b.dynamicChildren;const A=b.children,D=A.length;for(let U=0;U{const{slotScopeIds:V}=b;V&&(K=K?K.concat(V):V);const A=o(_),D=E(i(_),b,A,H,P,K,J);return D&&Yt(D)&&D.data==="]"?i(b.anchor=D):(Ue=!0,c(b.anchor=a("]"),A,D),D)},I=(_,b,H,P,K,J)=>{if(Ue=!0,b.el=null,J){const D=$(_);for(;;){const U=i(_);if(U&&U!==D)l(U);else break}}const V=i(_),A=o(_);return l(_),n(null,b,A,V,H,P,zt(A),K),V},$=_=>{let b=0;for(;_;)if(_=i(_),_&&Yt(_)&&(_.data==="["&&b++,_.data==="]")){if(b===0)return i(_);b--}return _};return[d,p]}const de=Ur;function gl(e){return ml(e,pl)}function ml(e,t){const n=Nn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:a,setElementText:d,parentNode:p,nextSibling:v,setScopeId:E=Pe,insertStaticContent:R}=e,I=(f,u,h,m=null,g=null,C=null,T=!1,w=null,x=!!u.dynamicChildren)=>{if(f===u)return;f&&!Ge(f,u)&&(m=jt(f),Ie(f,g,C,!0),f=null),u.patchFlag===-2&&(x=!1,u.dynamicChildren=null);const{type:y,ref:M,shapeFlag:F}=u;switch(y){case _t:$(f,u,h,m);break;case be:_(f,u,h,m);break;case It:f==null&&b(u,h,m,T);break;case he:O(f,u,h,m,g,C,T,w,x);break;default:F&1?K(f,u,h,m,g,C,T,w,x):F&6?k(f,u,h,m,g,C,T,w,x):(F&64||F&128)&&y.process(f,u,h,m,g,C,T,w,x,it)}M!=null&&g&&cn(M,f&&f.ref,C,u||f,!u)},$=(f,u,h,m)=>{if(f==null)s(u.el=l(u.children),h,m);else{const g=u.el=f.el;u.children!==f.children&&a(g,u.children)}},_=(f,u,h,m)=>{f==null?s(u.el=c(u.children||""),h,m):u.el=f.el},b=(f,u,h,m)=>{[f.el,f.anchor]=R(f.children,u,h,m,f.el,f.anchor)},H=({el:f,anchor:u},h,m)=>{let g;for(;f&&f!==u;)g=v(f),s(f,h,m),f=g;s(u,h,m)},P=({el:f,anchor:u})=>{let h;for(;f&&f!==u;)h=v(f),r(f),f=h;r(u)},K=(f,u,h,m,g,C,T,w,x)=>{T=T||u.type==="svg",f==null?J(u,h,m,g,C,T,w,x):D(f,u,g,C,T,w,x)},J=(f,u,h,m,g,C,T,w)=>{let x,y;const{type:M,props:F,shapeFlag:L,transition:B,dirs:W}=f;if(x=f.el=o(f.type,C,F&&F.is,F),L&8?d(x,f.children):L&16&&A(f.children,x,null,m,g,C&&M!=="foreignObject",T,w),W&&Fe(f,null,m,"created"),V(x,f,f.scopeId,T,m),F){for(const Z in F)Z!=="value"&&!At(Z)&&i(x,Z,null,F[Z],C,f.children,m,g,Le);"value"in F&&i(x,"value",null,F.value),(y=F.onVnodeBeforeMount)&&ve(y,m,f)}W&&Fe(f,null,m,"beforeMount");const G=(!g||g&&!g.pendingBranch)&&B&&!B.persisted;G&&B.beforeEnter(x),s(x,u,h),((y=F&&F.onVnodeMounted)||G||W)&&de(()=>{y&&ve(y,m,f),G&&B.enter(x),W&&Fe(f,null,m,"mounted")},g)},V=(f,u,h,m,g)=>{if(h&&E(f,h),m)for(let C=0;C{for(let y=x;y{const w=u.el=f.el;let{patchFlag:x,dynamicChildren:y,dirs:M}=u;x|=f.patchFlag&16;const F=f.props||te,L=u.props||te;let B;h&&Je(h,!1),(B=L.onVnodeBeforeUpdate)&&ve(B,h,u,f),M&&Fe(u,f,h,"beforeUpdate"),h&&Je(h,!0);const W=g&&u.type!=="foreignObject";if(y?U(f.dynamicChildren,y,w,h,m,W,C):T||Q(f,u,w,null,h,m,W,C,!1),x>0){if(x&16)Y(w,u,F,L,h,m,g);else if(x&2&&F.class!==L.class&&i(w,"class",null,L.class,g),x&4&&i(w,"style",F.style,L.style,g),x&8){const G=u.dynamicProps;for(let Z=0;Z{B&&ve(B,h,u,f),M&&Fe(u,f,h,"updated")},m)},U=(f,u,h,m,g,C,T)=>{for(let w=0;w{if(h!==m){if(h!==te)for(const w in h)!At(w)&&!(w in m)&&i(f,w,h[w],null,T,u.children,g,C,Le);for(const w in m){if(At(w))continue;const x=m[w],y=h[w];x!==y&&w!=="value"&&i(f,w,y,x,T,u.children,g,C,Le)}"value"in m&&i(f,"value",h.value,m.value)}},O=(f,u,h,m,g,C,T,w,x)=>{const y=u.el=f?f.el:l(""),M=u.anchor=f?f.anchor:l("");let{patchFlag:F,dynamicChildren:L,slotScopeIds:B}=u;B&&(w=w?w.concat(B):B),f==null?(s(y,h,m),s(M,h,m),A(u.children,h,M,g,C,T,w,x)):F>0&&F&64&&L&&f.dynamicChildren?(U(f.dynamicChildren,L,h,g,C,T,w),(u.key!=null||g&&u===g.subTree)&&ni(f,u,!0)):Q(f,u,h,M,g,C,T,w,x)},k=(f,u,h,m,g,C,T,w,x)=>{u.slotScopeIds=w,f==null?u.shapeFlag&512?g.ctx.activate(u,h,m,T,x):S(u,h,m,g,C,T,x):ge(f,u,x)},S=(f,u,h,m,g,C,T)=>{const w=f.component=Tl(f,m,g);if(Bt(f)&&(w.ctx.renderer=it),Al(w),w.asyncDep){if(g&&g.registerDep(w,X),!f.el){const x=w.subTree=se(be);_(null,x,u,h)}return}X(w,f,u,h,g,C,T)},ge=(f,u,h)=>{const m=u.component=f.component;if(No(f,u,h))if(m.asyncDep&&!m.asyncResolved){ne(m,u,h);return}else m.next=u,Po(m.update),m.update();else u.el=f.el,m.vnode=u},X=(f,u,h,m,g,C,T)=>{const w=()=>{if(f.isMounted){let{next:M,bu:F,u:L,parent:B,vnode:W}=f,G=M,Z;Je(f,!1),M?(M.el=W.el,ne(f,M,T)):M=W,F&&Tn(F),(Z=M.props&&M.props.onVnodeBeforeUpdate)&&ve(Z,B,M,W),Je(f,!0);const ie=An(f),xe=f.subTree;f.subTree=ie,I(xe,ie,p(xe.el),jt(xe),f,g,C),M.el=ie.el,G===null&&$o(f,ie.el),L&&de(L,g),(Z=M.props&&M.props.onVnodeUpdated)&&de(()=>ve(Z,B,M,W),g)}else{let M;const{el:F,props:L}=u,{bm:B,m:W,parent:G}=f,Z=pt(u);if(Je(f,!1),B&&Tn(B),!Z&&(M=L&&L.onVnodeBeforeMount)&&ve(M,G,u),Je(f,!0),F&&En){const ie=()=>{f.subTree=An(f),En(F,f.subTree,f,g,null)};Z?u.type.__asyncLoader().then(()=>!f.isUnmounted&&ie()):ie()}else{const ie=f.subTree=An(f);I(null,ie,h,m,f,g,C),u.el=ie.el}if(W&&de(W,g),!Z&&(M=L&&L.onVnodeMounted)){const ie=u;de(()=>ve(M,G,ie),g)}(u.shapeFlag&256||G&&pt(G.vnode)&&G.vnode.shapeFlag&256)&&f.a&&de(f.a,g),f.isMounted=!0,u=h=m=null}},x=f.effect=new ns(w,()=>gn(y),f.scope),y=f.update=()=>x.run();y.id=f.uid,Je(f,!0),y()},ne=(f,u,h)=>{u.component=f;const m=f.vnode.props;f.vnode=u,f.next=null,al(f,u.props,m,h),hl(f,u.children,h),vt(),Fs(),wt()},Q=(f,u,h,m,g,C,T,w,x=!1)=>{const y=f&&f.children,M=f?f.shapeFlag:0,F=u.children,{patchFlag:L,shapeFlag:B}=u;if(L>0){if(L&128){Ut(y,F,h,m,g,C,T,w,x);return}else if(L&256){ze(y,F,h,m,g,C,T,w,x);return}}B&8?(M&16&&Le(y,g,C),F!==y&&d(h,F)):M&16?B&16?Ut(y,F,h,m,g,C,T,w,x):Le(y,g,C,!0):(M&8&&d(h,""),B&16&&A(F,h,m,g,C,T,w,x))},ze=(f,u,h,m,g,C,T,w,x)=>{f=f||ft,u=u||ft;const y=f.length,M=u.length,F=Math.min(y,M);let L;for(L=0;LM?Le(f,g,C,!0,!1,F):A(u,h,m,g,C,T,w,x,F)},Ut=(f,u,h,m,g,C,T,w,x)=>{let y=0;const M=u.length;let F=f.length-1,L=M-1;for(;y<=F&&y<=L;){const B=f[y],W=u[y]=x?Ke(u[y]):Te(u[y]);if(Ge(B,W))I(B,W,h,null,g,C,T,w,x);else break;y++}for(;y<=F&&y<=L;){const B=f[F],W=u[L]=x?Ke(u[L]):Te(u[L]);if(Ge(B,W))I(B,W,h,null,g,C,T,w,x);else break;F--,L--}if(y>F){if(y<=L){const B=L+1,W=BL)for(;y<=F;)Ie(f[y],g,C,!0),y++;else{const B=y,W=y,G=new Map;for(y=W;y<=L;y++){const me=u[y]=x?Ke(u[y]):Te(u[y]);me.key!=null&&G.set(me.key,y)}let Z,ie=0;const xe=L-W+1;let ot=!1,vs=0;const Ct=new Array(xe);for(y=0;y=xe){Ie(me,g,C,!0);continue}let Oe;if(me.key!=null)Oe=G.get(me.key);else for(Z=W;Z<=L;Z++)if(Ct[Z-W]===0&&Ge(me,u[Z])){Oe=Z;break}Oe===void 0?Ie(me,g,C,!0):(Ct[Oe-W]=y+1,Oe>=vs?vs=Oe:ot=!0,I(me,u[Oe],h,null,g,C,T,w,x),ie++)}const ws=ot?_l(Ct):ft;for(Z=ws.length-1,y=xe-1;y>=0;y--){const me=W+y,Oe=u[me],Cs=me+1{const{el:C,type:T,transition:w,children:x,shapeFlag:y}=f;if(y&6){Ye(f.component.subTree,u,h,m);return}if(y&128){f.suspense.move(u,h,m);return}if(y&64){T.move(f,u,h,it);return}if(T===he){s(C,u,h);for(let F=0;Fw.enter(C),g);else{const{leave:F,delayLeave:L,afterLeave:B}=w,W=()=>s(C,u,h),G=()=>{F(C,()=>{W(),B&&B()})};L?L(C,W,G):G()}else s(C,u,h)},Ie=(f,u,h,m=!1,g=!1)=>{const{type:C,props:T,ref:w,children:x,dynamicChildren:y,shapeFlag:M,patchFlag:F,dirs:L}=f;if(w!=null&&cn(w,null,h,f,!0),M&256){u.ctx.deactivate(f);return}const B=M&1&&L,W=!pt(f);let G;if(W&&(G=T&&T.onVnodeBeforeUnmount)&&ve(G,u,f),M&6)xi(f.component,h,m);else{if(M&128){f.suspense.unmount(h,m);return}B&&Fe(f,null,u,"beforeUnmount"),M&64?f.type.remove(f,u,h,g,it,m):y&&(C!==he||F>0&&F&64)?Le(y,u,h,!1,!0):(C===he&&F&384||!g&&M&16)&&Le(x,u,h),m&&bs(f)}(W&&(G=T&&T.onVnodeUnmounted)||B)&&de(()=>{G&&ve(G,u,f),B&&Fe(f,null,u,"unmounted")},h)},bs=f=>{const{type:u,el:h,anchor:m,transition:g}=f;if(u===he){Ci(h,m);return}if(u===It){P(f);return}const C=()=>{r(h),g&&!g.persisted&&g.afterLeave&&g.afterLeave()};if(f.shapeFlag&1&&g&&!g.persisted){const{leave:T,delayLeave:w}=g,x=()=>T(h,C);w?w(f.el,C,x):x()}else C()},Ci=(f,u)=>{let h;for(;f!==u;)h=v(f),r(f),f=h;r(u)},xi=(f,u,h)=>{const{bum:m,scope:g,update:C,subTree:T,um:w}=f;m&&Tn(m),g.stop(),C&&(C.active=!1,Ie(T,f,u,h)),w&&de(w,u),de(()=>{f.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Le=(f,u,h,m=!1,g=!1,C=0)=>{for(let T=C;Tf.shapeFlag&6?jt(f.component.subTree):f.shapeFlag&128?f.suspense.next():v(f.anchor||f.el),ys=(f,u,h)=>{f==null?u._vnode&&Ie(u._vnode,null,null,!0):I(u._vnode||null,f,u,null,null,null,h),Fs(),sn(),u._vnode=f},it={p:I,um:Ie,m:Ye,r:bs,mt:S,mc:A,pc:Q,pbc:U,n:jt,o:e};let xn,En;return t&&([xn,En]=t(it)),{render:ys,hydrate:xn,createApp:ll(ys,xn)}}function Je({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ni(e,t,n=!1){const s=e.children,r=t.children;if(N(s)&&N(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const bl=e=>e.__isTeleport,he=Symbol.for("v-fgt"),_t=Symbol.for("v-txt"),be=Symbol.for("v-cmt"),It=Symbol.for("v-stc"),Ot=[];let Re=null;function si(e=!1){Ot.push(Re=e?null:[])}function yl(){Ot.pop(),Re=Ot[Ot.length-1]||null}let Nt=1;function ks(e){Nt+=e}function ri(e){return e.dynamicChildren=Nt>0?Re||ft:null,yl(),Nt>0&&Re&&Re.push(e),e}function Vc(e,t,n,s,r,i){return ri(li(e,t,n,s,r,i,!0))}function ii(e,t,n,s,r){return ri(se(e,t,n,s,r,!0))}function fn(e){return e?e.__v_isVNode===!0:!1}function Ge(e,t){return e.type===t.type&&e.key===t.key}const Cn="__vInternal",oi=({key:e})=>e??null,Qt=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||ce(e)||j(e)?{i:ae,r:e,k:t,f:!!n}:e:null);function li(e,t=null,n=null,s=0,r=null,i=e===he?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&oi(t),ref:t&&Qt(t),scopeId:_n,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:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ae};return l?(gs(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),Nt>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const se=vl;function vl(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===qr)&&(e=be),fn(e)){const l=qe(e,t,!0);return n&&gs(l,n),Nt>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(Ol(e)&&(e=e.__vccOpts),t){t=wl(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=es(l)),ee(c)&&(Fr(c)&&!N(c)&&(c=oe({},c)),t.style=Gn(c))}const o=re(e)?1:Ho(e)?128:bl(e)?64:ee(e)?4:j(e)?2:0;return li(e,t,n,s,r,o,i,!0)}function wl(e){return e?Fr(e)||Cn in e?oe({},e):e:null}function qe(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?Cl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&oi(l),ref:t&&t.ref?n&&r?N(r)?r.concat(Qt(t)):[r,Qt(t)]:Qt(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==he?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,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}}function ci(e=" ",t=0){return se(_t,null,e,t)}function qc(e,t){const n=se(It,null,e);return n.staticCount=t,n}function zc(e="",t=!1){return t?(si(),ii(be,null,e)):se(be,null,e)}function Te(e){return e==null||typeof e=="boolean"?se(be):N(e)?se(he,null,e.slice()):typeof e=="object"?Ke(e):se(_t,null,String(e))}function Ke(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:qe(e)}function gs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(N(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),gs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Cn in t)?t._ctx=ae:r===3&&ae&&(ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else j(t)?(t={default:t,_ctx:ae},n=32):(t=String(t),s&64?(n=16,t=[ci(t)]):n=8);e.children=t,e.shapeFlag|=n}function Cl(...e){const t={};for(let n=0;nle||ae;let ms,lt,Ws="__VUE_INSTANCE_SETTERS__";(lt=Nn()[Ws])||(lt=Nn()[Ws]=[]),lt.push(e=>le=e),ms=e=>{lt.length>1?lt.forEach(t=>t(e)):lt[0](e)};const bt=e=>{ms(e),e.scope.on()},st=()=>{le&&le.scope.off(),ms(null)};function ai(e){return e.vnode.shapeFlag&4}let yt=!1;function Al(e,t=!1){yt=t;const{props:n,children:s}=e.vnode,r=ai(e);fl(e,n,r,t),dl(e,s);const i=r?Rl(e,t):void 0;return yt=!1,i}function Rl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Rt(new Proxy(e.ctx,Go));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?di(e):null;bt(e),vt();const i=We(s,e,0,[e.props,r]);if(wt(),st(),gr(i)){if(i.then(st,st),t)return i.then(o=>{Vs(e,o,t)}).catch(o=>{Ht(o,e,0)});e.asyncDep=i}else Vs(e,i,t)}else ui(e,t)}function Vs(e,t,n){j(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ee(t)&&(e.setupState=Mr(t)),ui(e,n)}let qs;function ui(e,t,n){const s=e.type;if(!e.render){if(!t&&qs&&!s.render){const r=s.template||hs(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,a=oe(oe({isCustomElement:i,delimiters:l},o),c);s.render=qs(r,a)}}e.render=s.render||Pe}bt(e),vt(),tl(e),wt(),st()}function Pl(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return pe(e,"get","$attrs"),t[n]}}))}function di(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return Pl(e)},slots:e.slots,emit:e.emit,expose:t}}function _s(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Mr(Rt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Pt)return Pt[n](e)},has(t,n){return n in t||n in Pt}}))}function Il(e,t=!0){return j(e)?e.displayName||e.name:e.name||t&&e.__name}function Ol(e){return j(e)&&"__vccOpts"in e}const Ee=(e,t)=>To(e,t,yt);function qn(e,t,n){const s=arguments.length;return s===2?ee(t)&&!N(t)?fn(t)?se(e,null,[t]):se(e,t):se(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&fn(n)&&(n=[n]),se(e,t,n))}const Fl=Symbol.for("v-scx"),Sl=()=>gt(Fl),Ml="3.3.4",Ll="http://www.w3.org/2000/svg",et=typeof document<"u"?document:null,zs=et&&et.createElement("template"),Nl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?et.createElementNS(Ll,e):et.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>et.createTextNode(e),createComment:e=>et.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>et.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{zs.innerHTML=s?`${e}`:e;const l=zs.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function $l(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Hl(e,t,n){const s=e.style,r=re(n);if(n&&!r){if(t&&!re(t))for(const i in t)n[i]==null&&zn(s,i,"");for(const i in n)zn(s,i,n[i])}else{const i=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const Ys=/\s*!important$/;function zn(e,t,n){if(N(n))n.forEach(s=>zn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Bl(e,t);Ys.test(n)?e.setProperty(rt(s),n.replace(Ys,""),"important"):e[s]=n}}const Js=["Webkit","Moz","ms"],On={};function Bl(e,t){const n=On[t];if(n)return n;let s=Me(t);if(s!=="filter"&&s in e)return On[t]=s;s=dn(s);for(let r=0;rFn||(Vl.then(()=>Fn=0),Fn=Date.now());function zl(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ce(Yl(s,n.value),t,5,[s])};return n.value=e,n.attached=ql(),n}function Yl(e,t){if(N(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Qs=/^on[a-z]/,Jl=(e,t,n,s,r=!1,i,o,l,c)=>{t==="class"?$l(e,s,r):t==="style"?Hl(e,n,s):$t(t)?Jn(t)||kl(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Xl(e,t,s,r))?jl(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Ul(e,t,s,r))};function Xl(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Qs.test(t)&&j(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Qs.test(t)&&re(n)?!1:t in e}const je="transition",xt="animation",hi=(e,{slots:t})=>qn(Ko,Zl(e),t);hi.displayName="Transition";const pi={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};hi.props=oe({},Dr,pi);const Xe=(e,t=[])=>{N(e)?e.forEach(n=>n(...t)):e&&e(...t)},Gs=e=>e?N(e)?e.some(t=>t.length>1):e.length>1:!1;function Zl(e){const t={};for(const O in e)O in pi||(t[O]=e[O]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=o,appearToClass:d=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:E=`${n}-leave-to`}=e,R=Ql(r),I=R&&R[0],$=R&&R[1],{onBeforeEnter:_,onEnter:b,onEnterCancelled:H,onLeave:P,onLeaveCancelled:K,onBeforeAppear:J=_,onAppear:V=b,onAppearCancelled:A=H}=t,D=(O,k,S)=>{Ze(O,k?d:l),Ze(O,k?a:o),S&&S()},U=(O,k)=>{O._isLeaving=!1,Ze(O,p),Ze(O,E),Ze(O,v),k&&k()},Y=O=>(k,S)=>{const ge=O?V:b,X=()=>D(k,O,S);Xe(ge,[k,X]),er(()=>{Ze(k,O?c:i),De(k,O?d:l),Gs(ge)||tr(k,s,I,X)})};return oe(t,{onBeforeEnter(O){Xe(_,[O]),De(O,i),De(O,o)},onBeforeAppear(O){Xe(J,[O]),De(O,c),De(O,a)},onEnter:Y(!1),onAppear:Y(!0),onLeave(O,k){O._isLeaving=!0;const S=()=>U(O,k);De(O,p),tc(),De(O,v),er(()=>{O._isLeaving&&(Ze(O,p),De(O,E),Gs(P)||tr(O,s,$,S))}),Xe(P,[O,S])},onEnterCancelled(O){D(O,!1),Xe(H,[O])},onAppearCancelled(O){D(O,!0),Xe(A,[O])},onLeaveCancelled(O){U(O),Xe(K,[O])}})}function Ql(e){if(e==null)return null;if(ee(e))return[Sn(e.enter),Sn(e.leave)];{const t=Sn(e);return[t,t]}}function Sn(e){return Fi(e)}function De(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Ze(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function er(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Gl=0;function tr(e,t,n,s){const r=e._endId=++Gl,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=ec(e,t);if(!o)return s();const a=o+"end";let d=0;const p=()=>{e.removeEventListener(a,v),i()},v=E=>{E.target===e&&++d>=c&&p()};setTimeout(()=>{d(n[R]||"").split(", "),r=s(`${je}Delay`),i=s(`${je}Duration`),o=nr(r,i),l=s(`${xt}Delay`),c=s(`${xt}Duration`),a=nr(l,c);let d=null,p=0,v=0;t===je?o>0&&(d=je,p=o,v=i.length):t===xt?a>0&&(d=xt,p=a,v=c.length):(p=Math.max(o,a),d=p>0?o>a?je:xt:null,v=d?d===je?i.length:c.length:0);const E=d===je&&/\b(transform|all)(,|$)/.test(s(`${je}Property`).toString());return{type:d,timeout:p,propCount:v,hasTransform:E}}function nr(e,t){for(;e.lengthsr(n)+sr(e[s])))}function sr(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function tc(){return document.body.offsetHeight}const nc=["ctrl","shift","alt","meta"],sc={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)=>nc.some(n=>e[`${n}Key`]&&!t.includes(n))},Yc=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=rt(n.key);if(t.some(r=>r===s||rc[r]===s))return e(n)},ic=oe({patchProp:Jl},Nl);let Mn,rr=!1;function oc(){return Mn=rr?Mn:gl(ic),rr=!0,Mn}const Xc=(...e)=>{const t=oc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=lc(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function lc(e){return re(e)?document.querySelector(e):e}const Zc=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},cc="modulepreload",fc=function(e){return"/"+e},ir={},Qc=function(t,n,s){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=fc(i),i in ir)return;ir[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!s)for(let d=r.length-1;d>=0;d--){const p=r[d];if(p.href===i&&(!o||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const a=document.createElement("link");if(a.rel=o?"stylesheet":cc,o||(a.as="script",a.crossOrigin=""),a.href=i,document.head.appendChild(a),o)return new Promise((d,p)=>{a.addEventListener("load",d),a.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},ac=window.__VP_SITE_DATA__,gi=/^[a-z]+:/i,Gc=/^pathname:\/\//,ef="vitepress-theme-appearance",mi=/#.*$/,uc=/(index)?\.(md|html)$/,we=typeof document<"u",_i={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function dc(e,t,n=!1){if(t===void 0)return!1;if(e=or(`/${e}`),n)return new RegExp(t).test(e);if(or(t)!==e)return!1;const s=t.match(mi);return s?(we?location.hash:"")===s[0]:!0}function or(e){return decodeURI(e).replace(mi,"").replace(uc,"")}function hc(e){return gi.test(e)}function pc(e,t){var s,r,i,o,l,c,a;const n=Object.keys(e.locales).find(d=>d!=="root"&&!hc(d)&&dc(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:yi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function bi(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=gc(e.title,s);return`${n}${r}`}function gc(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function mc(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function yi(e,t){return[...e.filter(n=>!mc(t,n)),...t]}const _c=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,bc=/^[a-z]:/i;function lr(e){const t=bc.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(_c,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const yc=Symbol(),tt=mo(ac);function tf(e){const t=Ee(()=>pc(tt.value,e.data.relativePath));return{site:t,theme:Ee(()=>t.value.themeConfig),page:Ee(()=>e.data),frontmatter:Ee(()=>e.data.frontmatter),params:Ee(()=>e.data.params),lang:Ee(()=>t.value.lang),dir:Ee(()=>t.value.dir),localeIndex:Ee(()=>t.value.localeIndex||"root"),title:Ee(()=>bi(t.value,e.data)),description:Ee(()=>e.data.description||t.value.description),isDark:dt(!1)}}function nf(){const e=gt(yc);if(!e)throw new Error("vitepress data not properly injected in app");return e}function vc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function cr(e){return gi.test(e)||e.startsWith(".")?e:vc(tt.value.base,e)}function wc(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),we){const n="/";t=lr(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}${"assets".replace(/"(.+)"/,"$1")}/${t}.${s}.js`}else t=`./${lr(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Gt=[];function sf(e){Gt.push(e),wn(()=>{Gt=Gt.filter(t=>t!==e)})}const Cc=Symbol(),fr="http://a.com",xc=()=>({path:"/",component:null,data:_i});function rf(e,t){const n=pn(xc()),s={route:n,go:r};async function r(l=we?location.href:"/"){var a,d;if(await((a=s.onBeforeRouteChange)==null?void 0:a.call(s,l))===!1)return;const c=new URL(l,fr);tt.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),we&&l!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",l)),await o(l),await((d=s.onAfterRouteChanged)==null?void 0:d.call(s,l))}let i=null;async function o(l,c=0,a=!1){var v;if(await((v=s.onBeforePageLoad)==null?void 0:v.call(s,l))===!1)return;const d=new URL(l,fr),p=i=d.pathname;try{let E=await e(p);if(!E)throw new Error(`Page not found: ${p}`);if(i===p){i=null;const{default:R,__pageData:I}=E;if(!R)throw new Error(`Invalid route component: ${R}`);n.path=we?p:cr(p),n.component=Rt(R),n.data=Rt(I),we&&Nr(()=>{let $=tt.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!tt.value.cleanUrls&&!$.endsWith("/")&&($+=".html"),$!==d.pathname&&(d.pathname=$,l=$+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let _=null;try{_=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch(b){console.warn(b)}if(_){ar(_,d.hash);return}}window.scrollTo(0,c)})}}catch(E){if(!/fetch|Page not found/.test(E.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(E),!a)try{const R=await fetch(tt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await R.json(),await o(l,c,!0);return}catch{}i===p&&(i=null,n.path=we?p:cr(p),n.component=t?Rt(t):null,n.data=_i)}}return we&&(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:d}=a,{href:p,origin:v,pathname:E,hash:R,search:I}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),$=window.location,_=E.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!d&&v===$.origin&&!(_&&_[0]!==".html")&&(l.preventDefault(),E===$.pathname&&I===$.search?R&&(R!==$.hash&&(history.pushState(null,"",R),window.dispatchEvent(new Event("hashchange"))),ar(a,R,a.classList.contains("header-anchor"))):r(p))}},{capture:!0}),window.addEventListener("popstate",l=>{o(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Ec(){const e=gt(Cc);if(!e)throw new Error("useRouter() is called without provider.");return e}function vi(){return Ec().route}function ar(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let c=function(){!n||Math.abs(l-window.scrollY)>window.innerHeight?window.scrollTo(0,l):window.scrollTo({left:0,top:l,behavior:"smooth"})};const r=tt.value.scrollOffset;let i=0;if(typeof r=="number")i=r;else if(typeof r=="string")i=ur(r);else if(Array.isArray(r))for(const a of r){const d=ur(a);if(d){i=d;break}}const o=parseInt(window.getComputedStyle(s).paddingTop,10),l=window.scrollY+s.getBoundingClientRect().top-i+o;requestAnimationFrame(c)}}function ur(e){const t=document.querySelector(e);if(!t)return 0;const n=t.getBoundingClientRect().bottom;return n<0?0:n+24}const dr=()=>Gt.forEach(e=>e()),of=us({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=vi();return()=>qn(e.as,{style:{position:"relative"}},[t.component?qn(t.component,{onVnodeMounted:dr,onVnodeUpdated:dr}):"404 Page Not Found"])}}),lf=us({setup(e,{slots:t}){const n=dt(!1);return vn(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function cf(){we&&window.addEventListener("click",e=>{var n,s;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement,i=Array.from((r==null?void 0:r.querySelectorAll("input"))||[]).indexOf(t),o=r==null?void 0:r.querySelector('div[class*="language-"].active'),l=(s=r==null?void 0:r.querySelectorAll('div[class*="language-"]:not(.language-id)'))==null?void 0:s[i];o&&l&&o!==l&&(o.classList.remove("active"),l.classList.add("active"))}})}function ff(){if(we){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` +`),l=l.slice(0,-1),o&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),Tc(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function Tc(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 s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function af(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}n.forEach(o=>document.head.removeChild(o)),n=[],i.forEach(o=>{const l=hr(o);document.head.appendChild(l),n.push(l)})};Bo(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=bi(o,i);const a=l||o.description;let d=document.querySelector("meta[name=description]");d?d.setAttribute("content",a):hr(["meta",{name:"description",content:a}]),r(yi(o.head,Rc(c)))})}function hr([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function Ac(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Rc(e){return e.filter(t=>!Ac(t))}const Ln=new Set,wi=()=>document.createElement("link"),Pc=e=>{const t=wi();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Ic=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Jt;const Oc=we&&(Jt=wi())&&Jt.relList&&Jt.relList.supports&&Jt.relList.supports("prefetch")?Pc:Ic;function uf(){if(!we||!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 s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Ln.has(c)){Ln.add(c);const a=wc(c);a&&Oc(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Ln.add(l))})})};vn(s);const r=vi();Zt(()=>r.path,s),wn(()=>{n&&n.disconnect()})}export{Jc as $,Bo as A,fi as B,dc as C,vi as D,wn as E,Yo as F,Uc as G,he as H,Dc as I,mo as J,sf as K,se as L,jc as M,gi as N,Cl as O,Gc as P,gt as Q,Gn as R,Nr as S,hi as T,qc as U,we as V,ef as W,Bc as X,Qc as Y,cl as Z,Zc as _,ci as a,kc as a0,Hc as a1,Yc as a2,Wc as a3,af as a4,Cc as a5,tf as a6,yc as a7,of as a8,lf as a9,tt as aa,Xc as ab,rf as ac,wc as ad,uf as ae,ff as af,cf as ag,qn as ah,Ec as ai,ii as b,Vc as c,us as d,zc as e,cr as f,Ee as g,dt as h,hc as i,vn as j,li as k,bo as l,$c as m,es as n,si as o,Nc as p,Lc as q,Kc as r,Or as s,Fc as t,nf as u,Mc as v,So as w,ji as x,Sc as y,Zt as z}; diff --git a/docs/assets/chunks/framework.fed62f4c.js b/docs/assets/chunks/framework.fed62f4c.js deleted file mode 100644 index f6e69ec5..00000000 --- a/docs/assets/chunks/framework.fed62f4c.js +++ /dev/null @@ -1,2 +0,0 @@ -function Yn(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const te={},ft=[],Pe=()=>{},xi=()=>!1,Ei=/^on[^a-z]/,Ht=e=>Ei.test(e),Jn=e=>e.startsWith("onUpdate:"),oe=Object.assign,Xn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ti=Object.prototype.hasOwnProperty,q=(e,t)=>Ti.call(e,t),N=Array.isArray,at=e=>an(e)==="[object Map]",hr=e=>an(e)==="[object Set]",B=e=>typeof e=="function",re=e=>typeof e=="string",Zn=e=>typeof e=="symbol",ee=e=>e!==null&&typeof e=="object",pr=e=>ee(e)&&B(e.then)&&B(e.catch),gr=Object.prototype.toString,an=e=>gr.call(e),Ai=e=>an(e).slice(8,-1),mr=e=>an(e)==="[object Object]",Qn=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=Yn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),un=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ri=/-(\w)/g,Me=un(e=>e.replace(Ri,(t,n)=>n?n.toUpperCase():"")),Pi=/\B([A-Z])/g,rt=un(e=>e.replace(Pi,"-$1").toLowerCase()),dn=un(e=>e.charAt(0).toUpperCase()+e.slice(1)),Xt=un(e=>e?`on${dn(e)}`:""),Ft=(e,t)=>!Object.is(e,t),Tn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Ii=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Oi=e=>{const t=re(e)?Number(e):NaN;return isNaN(t)?e:t};let xs;const Nn=()=>xs||(xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Gn(e){if(N(e)){const t={};for(let n=0;n{if(n){const s=n.split(Si);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function es(e){let t="";if(re(e))t=e;else if(N(e))for(let n=0;nre(e)?e:e==null?"":N(e)||ee(e)&&(e.toString===gr||!B(e.toString))?JSON.stringify(e,br,2):String(e),br=(e,t)=>t&&t.__v_isRef?br(e,t.value):at(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:hr(t)?{[`Set(${t.size})`]:[...t.values()]}:ee(t)&&!N(t)&&!mr(t)?String(t):t;let _e;class $i{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=_e;try{return _e=this,t()}finally{_e=n}}}on(){_e=this}off(){_e=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},yr=e=>(e.w&Ve)>0,vr=e=>(e.n&Ve)>0,Bi=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(d==="length"||d>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":N(e)?Qn(n)&&l.push(o.get("length")):(l.push(o.get(nt)),at(e)&&l.push(o.get($n)));break;case"delete":N(e)||(l.push(o.get(nt)),at(e)&&l.push(o.get($n)));break;case"set":at(e)&&l.push(o.get(nt));break}if(l.length===1)l[0]&&Un(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Un(ts(c))}}function Un(e,t){const n=N(e)?e:[...e];for(const s of n)s.computed&&Ts(s);for(const s of n)s.computed||Ts(s)}function Ts(e,t){(e!==Ae||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Ki(e,t){var n;return(n=tn.get(e))==null?void 0:n.get(t)}const ki=Yn("__proto__,__v_isRef,__isVue"),xr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Zn)),Wi=ss(),Vi=ss(!1,!0),qi=ss(!0),As=zi();function zi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=z(this);for(let i=0,o=this.length;i{e[t]=function(...n){vt();const s=z(this)[t].apply(this,n);return Ct(),s}}),e}function Yi(e){const t=z(this);return pe(t,"has",e),t.hasOwnProperty(e)}function ss(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?ao:Pr:t?Rr:Ar).get(s))return s;const o=N(s);if(!e){if(o&&q(As,r))return Reflect.get(As,r,i);if(r==="hasOwnProperty")return Yi}const l=Reflect.get(s,r,i);return(Zn(r)?xr.has(r):ki(r))||(e||pe(s,"get",r),t)?l:ce(l)?o&&Qn(r)?l:l.value:ee(l)?e?Ir(l):pn(l):l}}const Ji=Er(),Xi=Er(!0);function Er(e=!1){return function(n,s,r,i){let o=n[s];if(mt(o)&&ce(o)&&!ce(r))return!1;if(!e&&(!nn(r)&&!mt(r)&&(o=z(o),r=z(r)),!N(n)&&ce(o)&&!ce(r)))return o.value=r,!0;const l=N(n)&&Qn(s)?Number(s)e,hn=e=>Reflect.getPrototypeOf(e);function Dt(e,t,n=!1,s=!1){e=e.__v_raw;const r=z(e),i=z(t);n||(t!==i&&pe(r,"get",t),pe(r,"get",i));const{has:o}=hn(r),l=s?rs:n?ls:St;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Kt(e,t=!1){const n=this.__v_raw,s=z(n),r=z(e);return t||(e!==r&&pe(s,"has",e),pe(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function kt(e,t=!1){return e=e.__v_raw,!t&&pe(z(e),"iterate",nt),Reflect.get(e,"size",e)}function Rs(e){e=z(e);const t=z(this);return hn(t).has.call(t,e)||(t.add(e),He(t,"add",e,e)),this}function Ps(e,t){t=z(t);const n=z(this),{has:s,get:r}=hn(n);let i=s.call(n,e);i||(e=z(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Ft(t,o)&&He(n,"set",e,t):He(n,"add",e,t),this}function Is(e){const t=z(this),{has:n,get:s}=hn(t);let r=n.call(t,e);r||(e=z(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&He(t,"delete",e,void 0),i}function Os(){const e=z(this),t=e.size!==0,n=e.clear();return t&&He(e,"clear",void 0,void 0),n}function Wt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=z(o),c=t?rs:e?ls:St;return!e&&pe(l,"iterate",nt),o.forEach((a,d)=>s.call(r,c(a),c(d),i))}}function Vt(e,t,n){return function(...s){const r=this.__v_raw,i=z(r),o=at(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,a=r[e](...s),d=n?rs:t?ls:St;return!t&&pe(i,"iterate",c?$n:nt),{next(){const{value:p,done:y}=a.next();return y?{value:p,done:y}:{value:l?[d(p[0]),d(p[1])]:d(p),done:y}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:this}}function no(){const e={get(i){return Dt(this,i)},get size(){return kt(this)},has:Kt,add:Rs,set:Ps,delete:Is,clear:Os,forEach:Wt(!1,!1)},t={get(i){return Dt(this,i,!1,!0)},get size(){return kt(this)},has:Kt,add:Rs,set:Ps,delete:Is,clear:Os,forEach:Wt(!1,!0)},n={get(i){return Dt(this,i,!0)},get size(){return kt(this,!0)},has(i){return Kt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Wt(!0,!1)},s={get(i){return Dt(this,i,!0,!0)},get size(){return kt(this,!0)},has(i){return Kt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Wt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Vt(i,!1,!1),n[i]=Vt(i,!0,!1),t[i]=Vt(i,!1,!0),s[i]=Vt(i,!0,!0)}),[e,n,t,s]}const[so,ro,io,oo]=no();function is(e,t){const n=t?e?oo:io:e?ro:so;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(q(n,r)&&r in s?n:s,r,i)}const lo={get:is(!1,!1)},co={get:is(!1,!0)},fo={get:is(!0,!1)},Ar=new WeakMap,Rr=new WeakMap,Pr=new WeakMap,ao=new WeakMap;function uo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ho(e){return e.__v_skip||!Object.isExtensible(e)?0:uo(Ai(e))}function pn(e){return mt(e)?e:os(e,!1,Tr,lo,Ar)}function po(e){return os(e,!1,to,co,Rr)}function Ir(e){return os(e,!0,eo,fo,Pr)}function os(e,t,n,s,r){if(!ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=ho(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function ut(e){return mt(e)?ut(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function nn(e){return!!(e&&e.__v_isShallow)}function Or(e){return ut(e)||mt(e)}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Rt(e){return en(e,"__v_skip",!0),e}const St=e=>ee(e)?pn(e):e,ls=e=>ee(e)?Ir(e):e;function cs(e){ke&&Ae&&(e=z(e),wr(e.dep||(e.dep=ts())))}function fs(e,t){e=z(e);const n=e.dep;n&&Un(n)}function ce(e){return!!(e&&e.__v_isRef===!0)}function dt(e){return Fr(e,!1)}function go(e){return Fr(e,!0)}function Fr(e,t){return ce(e)?e:new mo(e,t)}class mo{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:z(t),this._value=n?t:St(t)}get value(){return cs(this),this._value}set value(t){const n=this.__v_isShallow||nn(t)||mt(t);t=n?t:z(t),Ft(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:St(t),fs(this))}}function _o(e){return ce(e)?e.value:e}const bo={get:(e,t,n)=>_o(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ce(r)&&!ce(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Sr(e){return ut(e)?e:new Proxy(e,bo)}class yo{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>cs(this),()=>fs(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Mc(e){return new yo(e)}class vo{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,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 Ki(z(this._object),this._key)}}class Co{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Lc(e,t,n){return ce(e)?e:B(e)?new Co(e):ee(e)&&arguments.length>1?wo(e,t,n):dt(e)}function wo(e,t,n){const s=e[t];return ce(s)?s:new vo(e,t,n)}class xo{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new ns(t,()=>{this._dirty||(this._dirty=!0,fs(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=z(this);return cs(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Eo(e,t,n=!1){let s,r;const i=B(e);return i?(s=e,r=Pe):(s=e.get,r=e.set),new xo(s,r,i||!r,n)}function We(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){$t(i,t,n)}return r}function we(e,t,n,s){if(B(e)){const i=We(e,t,n,s);return i&&pr(i)&&i.catch(o=>{$t(o,t,n)}),i}const r=[];for(let i=0;i>>1;Lt(fe[s])Se&&fe.splice(t,1)}function Po(e){N(e)?ht.push(...e):(!Ne||!Ne.includes(e,e.allowRecurse?Qe+1:Qe))&&ht.push(e),Nr()}function Fs(e,t=Mt?Se+1:0){for(;tLt(n)-Lt(s)),Qe=0;Qee.id==null?1/0:e.id,Io=(e,t)=>{const n=Lt(e)-Lt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Hr(e){jn=!1,Mt=!0,fe.sort(Io);const t=Pe;try{for(Se=0;Sere(x)?x.trim():x)),p&&(r=n.map(Ii))}let l,c=s[l=Xt(t)]||s[l=Xt(Me(t))];!c&&i&&(c=s[l=Xt(rt(t))]),c&&we(c,e,6,r);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,we(a,e,6,r)}}function $r(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!B(e)){const c=a=>{const d=$r(a,t,!0);d&&(l=!0,oe(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ee(e)&&s.set(e,null),null):(N(i)?i.forEach(c=>o[c]=null):oe(o,i),ee(e)&&s.set(e,o),o)}function mn(e,t){return!e||!Ht(t)?!1:(t=t.slice(2).replace(/Once$/,""),q(e,t[0].toLowerCase()+t.slice(1))||q(e,rt(t))||q(e,t))}let ae=null,_n=null;function rn(e){const t=ae;return ae=e,_n=e&&e.type.__scopeId||null,t}function Nc(e){_n=e}function Hc(){_n=null}function Fo(e,t=ae,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&ks(-1);const i=rn(t);let o;try{o=e(...r)}finally{rn(i),s._d&&ks(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function An(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:a,render:d,renderCache:p,data:y,setupState:x,ctx:I,inheritAttrs:R}=e;let $,_;const b=rn(e);try{if(n.shapeFlag&4){const P=r||s;$=Te(d.call(P,P,p,i,x,y,I)),_=c}else{const P=t;$=Te(P.length>1?P(i,{attrs:c,slots:l,emit:a}):P(i,null)),_=t.props?c:So(c)}}catch(P){Ot.length=0,$t(P,e,1),$=se(be)}let H=$;if(_&&R!==!1){const P=Object.keys(_),{shapeFlag:K}=H;P.length&&K&7&&(o&&P.some(Jn)&&(_=Mo(_,o)),H=qe(H,_))}return n.dirs&&(H=qe(H),H.dirs=H.dirs?H.dirs.concat(n.dirs):n.dirs),n.transition&&(H.transition=n.transition),$=H,rn(b),$}const So=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ht(n))&&((t||(t={}))[n]=e[n]);return t},Mo=(e,t)=>{const n={};for(const s in e)(!Jn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Lo(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Ss(s,o,a):!!o;if(c&8){const d=t.dynamicProps;for(let p=0;pe.__isSuspense;function Ur(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):Po(e)}function $o(e,t){return bn(e,null,t)}function $c(e,t){return bn(e,null,{flush:"post"})}const qt={};function Zt(e,t,n){return bn(e,t,n)}function bn(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=te){var l;const c=ji()===((l=le)==null?void 0:l.scope)?le:null;let a,d=!1,p=!1;if(ce(e)?(a=()=>e.value,d=nn(e)):ut(e)?(a=()=>e,s=!0):N(e)?(p=!0,d=e.some(P=>ut(P)||nn(P)),a=()=>e.map(P=>{if(ce(P))return P.value;if(ut(P))return ct(P);if(B(P))return We(P,c,2)})):B(e)?t?a=()=>We(e,c,2):a=()=>{if(!(c&&c.isUnmounted))return y&&y(),we(e,c,3,[x])}:a=Pe,t&&s){const P=a;a=()=>ct(P())}let y,x=P=>{y=b.onStop=()=>{We(P,c,4)}},I;if(yt)if(x=Pe,t?n&&we(t,c,3,[a(),p?[]:void 0,x]):a(),r==="sync"){const P=Fl();I=P.__watcherHandles||(P.__watcherHandles=[])}else return Pe;let R=p?new Array(e.length).fill(qt):qt;const $=()=>{if(b.active)if(t){const P=b.run();(s||d||(p?P.some((K,J)=>Ft(K,R[J])):Ft(P,R)))&&(y&&y(),we(t,c,3,[P,R===qt?void 0:p&&R[0]===qt?[]:R,x]),R=P)}else b.run()};$.allowRecurse=!!t;let _;r==="sync"?_=$:r==="post"?_=()=>de($,c&&c.suspense):($.pre=!0,c&&($.id=c.uid),_=()=>gn($));const b=new ns(a,_);t?n?$():R=b.run():r==="post"?de(b.run.bind(b),c&&c.suspense):b.run();const H=()=>{b.stop(),c&&c.scope&&Xn(c.scope.effects,b)};return I&&I.push(H),H}function Uo(e,t,n){const s=this.proxy,r=re(e)?e.includes(".")?jr(s,e):()=>s[e]:e.bind(s,s);let i;B(t)?i=t:(i=t.handler,n=t);const o=le;bt(this);const l=bn(r,i.bind(s),n);return o?bt(o):st(),l}function jr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{ct(n,t)});else if(mr(e))for(const n in e)ct(e[n],t);return e}function Fe(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),Wr(()=>{e.isUnmounting=!0}),e}const ye=[Function,Array],Br={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ye,onEnter:ye,onAfterEnter:ye,onEnterCancelled:ye,onBeforeLeave:ye,onLeave:ye,onAfterLeave:ye,onLeaveCancelled:ye,onBeforeAppear:ye,onAppear:ye,onAfterAppear:ye,onAppearCancelled:ye},Bo={name:"BaseTransition",props:Br,setup(e,{slots:t}){const n=ci(),s=jo();let r;return()=>{const i=t.default&&Kr(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const R of i)if(R.type!==be){o=R;break}}const l=z(e),{mode:c}=l;if(s.isLeaving)return Rn(o);const a=Ms(o);if(!a)return Rn(o);const d=Bn(a,l,s,n);Dn(a,d);const p=n.subTree,y=p&&Ms(p);let x=!1;const{getTransitionKey:I}=a.type;if(I){const R=I();r===void 0?r=R:R!==r&&(r=R,x=!0)}if(y&&y.type!==be&&(!Ge(a,y)||x)){const R=Bn(y,l,s,n);if(Dn(y,R),c==="out-in")return s.isLeaving=!0,R.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},Rn(o);c==="in-out"&&a.type!==be&&(R.delayLeave=($,_,b)=>{const H=Dr(s,y);H[String(y.key)]=y,$._leaveCb=()=>{_(),$._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=b})}return o}}},Do=Bo;function Dr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Bn(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:p,onLeave:y,onAfterLeave:x,onLeaveCancelled:I,onBeforeAppear:R,onAppear:$,onAfterAppear:_,onAppearCancelled:b}=t,H=String(e.key),P=Dr(n,e),K=(A,D)=>{A&&we(A,s,9,D)},J=(A,D)=>{const j=D[1];K(A,D),N(A)?A.every(Y=>Y.length<=1)&&j():A.length<=1&&j()},V={mode:i,persisted:o,beforeEnter(A){let D=l;if(!n.isMounted)if(r)D=R||l;else return;A._leaveCb&&A._leaveCb(!0);const j=P[H];j&&Ge(e,j)&&j.el._leaveCb&&j.el._leaveCb(),K(D,[A])},enter(A){let D=c,j=a,Y=d;if(!n.isMounted)if(r)D=$||c,j=_||a,Y=b||d;else return;let O=!1;const k=A._enterCb=S=>{O||(O=!0,S?K(Y,[A]):K(j,[A]),V.delayedLeave&&V.delayedLeave(),A._enterCb=void 0)};D?J(D,[A,k]):k()},leave(A,D){const j=String(e.key);if(A._enterCb&&A._enterCb(!0),n.isUnmounting)return D();K(p,[A]);let Y=!1;const O=A._leaveCb=k=>{Y||(Y=!0,D(),k?K(I,[A]):K(x,[A]),A._leaveCb=void 0,P[j]===e&&delete P[j])};P[j]=e,y?J(y,[A,O]):O()},clone(A){return Bn(A,t,n,s)}};return V}function Rn(e){if(Ut(e))return e=qe(e),e.children=null,e}function Ms(e){return Ut(e)?e.children?e.children[0]:void 0:e}function Dn(e,t){e.shapeFlag&6&&e.component?Dn(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 Kr(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;ioe({name:e.name},t,{setup:e}))():e}const pt=e=>!!e.type.__asyncLoader;function Uc(e){B(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,timeout:i,suspensible:o=!0,onError:l}=e;let c=null,a,d=0;const p=()=>(d++,c=null,y()),y=()=>{let x;return c||(x=c=t().catch(I=>{if(I=I instanceof Error?I:new Error(String(I)),l)return new Promise((R,$)=>{l(I,()=>R(p()),()=>$(I),d+1)});throw I}).then(I=>x!==c&&c?c:(I&&(I.__esModule||I[Symbol.toStringTag]==="Module")&&(I=I.default),a=I,I)))};return us({name:"AsyncComponentWrapper",__asyncLoader:y,get __asyncResolved(){return a},setup(){const x=le;if(a)return()=>Pn(a,x);const I=b=>{c=null,$t(b,x,13,!s)};if(o&&x.suspense||yt)return y().then(b=>()=>Pn(b,x)).catch(b=>(I(b),()=>s?se(s,{error:b}):null));const R=dt(!1),$=dt(),_=dt(!!r);return r&&setTimeout(()=>{_.value=!1},r),i!=null&&setTimeout(()=>{if(!R.value&&!$.value){const b=new Error(`Async component timed out after ${i}ms.`);I(b),$.value=b}},i),y().then(()=>{R.value=!0,x.parent&&Ut(x.parent.vnode)&&gn(x.parent.update)}).catch(b=>{I(b),$.value=b}),()=>{if(R.value&&a)return Pn(a,x);if($.value&&s)return se(s,{error:$.value});if(n&&!_.value)return se(n)}}})}function Pn(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=se(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const Ut=e=>e.type.__isKeepAlive;function Ko(e,t){kr(e,"a",t)}function ko(e,t){kr(e,"da",t)}function kr(e,t,n=le){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(yn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Ut(r.parent.vnode)&&Wo(s,t,n,r),r=r.parent}}function Wo(e,t,n,s){const r=yn(t,e,s,!0);Cn(()=>{Xn(s[t],r)},n)}function yn(e,t,n=le,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;vt(),bt(n);const l=we(t,n,e,o);return st(),Ct(),l});return s?r.unshift(i):r.push(i),i}}const $e=e=>(t,n=le)=>(!yt||e==="sp")&&yn(e,(...s)=>t(...s),n),Vo=$e("bm"),vn=$e("m"),qo=$e("bu"),zo=$e("u"),Wr=$e("bum"),Cn=$e("um"),Yo=$e("sp"),Jo=$e("rtg"),Xo=$e("rtc");function Zo(e,t=le){yn("ec",e,t)}const ds="components";function jc(e,t){return qr(ds,e,!0,t)||e}const Vr=Symbol.for("v-ndc");function Bc(e){return re(e)?qr(ds,e,!1)||e:e||Vr}function qr(e,t,n=!0,s=!1){const r=ae||le;if(r){const i=r.type;if(e===ds){const l=Pl(i,!1);if(l&&(l===t||l===Me(t)||l===dn(Me(t))))return i}const o=Ls(r[e]||i[e],t)||Ls(r.appContext[e],t);return!o&&s?i:o}}function Ls(e,t){return e&&(e[t]||e[Me(t)]||e[dn(Me(t))])}function Dc(e,t,n,s){let r;const i=n&&n[s];if(N(e)||re(e)){r=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lfn(t)?!(t.type===be||t.type===he&&!zr(t.children)):!0)?e:null}function kc(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:Xt(s)]=e[s];return n}const Kn=e=>e?fi(e)?_s(e)||e.proxy:Kn(e.parent):null,Pt=oe(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=>Kn(e.parent),$root:e=>Kn(e.root),$emit:e=>e.emit,$options:e=>hs(e),$forceUpdate:e=>e.f||(e.f=()=>gn(e.update)),$nextTick:e=>e.n||(e.n=Lr.bind(e.proxy)),$watch:e=>Uo.bind(e)}),In=(e,t)=>e!==te&&!e.__isScriptSetup&&q(e,t),Qo={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const x=o[t];if(x!==void 0)switch(x){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(In(s,t))return o[t]=1,s[t];if(r!==te&&q(r,t))return o[t]=2,r[t];if((a=e.propsOptions[0])&&q(a,t))return o[t]=3,i[t];if(n!==te&&q(n,t))return o[t]=4,n[t];kn&&(o[t]=0)}}const d=Pt[t];let p,y;if(d)return t==="$attrs"&&pe(e,"get",t),d(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==te&&q(n,t))return o[t]=4,n[t];if(y=c.config.globalProperties,q(y,t))return y[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return In(r,t)?(r[t]=n,!0):s!==te&&q(s,t)?(s[t]=n,!0):q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==te&&q(e,o)||In(t,o)||(l=i[0])&&q(l,o)||q(s,o)||q(Pt,o)||q(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Wc(){return Go().slots}function Go(){const e=ci();return e.setupContext||(e.setupContext=ui(e))}function Ns(e){return N(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let kn=!0;function el(e){const t=hs(e),n=e.proxy,s=e.ctx;kn=!1,t.beforeCreate&&Hs(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:a,created:d,beforeMount:p,mounted:y,beforeUpdate:x,updated:I,activated:R,deactivated:$,beforeDestroy:_,beforeUnmount:b,destroyed:H,unmounted:P,render:K,renderTracked:J,renderTriggered:V,errorCaptured:A,serverPrefetch:D,expose:j,inheritAttrs:Y,components:O,directives:k,filters:S}=t;if(a&&tl(a,s,null),o)for(const ne in o){const Q=o[ne];B(Q)&&(s[ne]=Q.bind(n))}if(r){const ne=r.call(n,n);ee(ne)&&(e.data=pn(ne))}if(kn=!0,i)for(const ne in i){const Q=i[ne],ze=B(Q)?Q.bind(n,n):B(Q.get)?Q.get.bind(n,n):Pe,jt=!B(Q)&&B(Q.set)?Q.set.bind(n):Pe,Ye=Ee({get:ze,set:jt});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>Ye.value,set:Ie=>Ye.value=Ie})}if(l)for(const ne in l)Yr(l[ne],s,n,ne);if(c){const ne=B(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(Q=>{ll(Q,ne[Q])})}d&&Hs(d,e,"c");function X(ne,Q){N(Q)?Q.forEach(ze=>ne(ze.bind(n))):Q&&ne(Q.bind(n))}if(X(Vo,p),X(vn,y),X(qo,x),X(zo,I),X(Ko,R),X(ko,$),X(Zo,A),X(Xo,J),X(Jo,V),X(Wr,b),X(Cn,P),X(Yo,D),N(j))if(j.length){const ne=e.exposed||(e.exposed={});j.forEach(Q=>{Object.defineProperty(ne,Q,{get:()=>n[Q],set:ze=>n[Q]=ze})})}else e.exposed||(e.exposed={});K&&e.render===Pe&&(e.render=K),Y!=null&&(e.inheritAttrs=Y),O&&(e.components=O),k&&(e.directives=k)}function tl(e,t,n=Pe){N(e)&&(e=Wn(e));for(const s in e){const r=e[s];let i;ee(r)?"default"in r?i=gt(r.from||s,r.default,!0):i=gt(r.from||s):i=gt(r),ce(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Hs(e,t,n){we(N(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Yr(e,t,n,s){const r=s.includes(".")?jr(n,s):()=>n[s];if(re(e)){const i=t[e];B(i)&&Zt(r,i)}else if(B(e))Zt(r,e.bind(n));else if(ee(e))if(N(e))e.forEach(i=>Yr(i,t,n,s));else{const i=B(e.handler)?e.handler.bind(n):t[e.handler];B(i)&&Zt(r,i,e)}}function hs(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(a=>on(c,a,o,!0)),on(c,t,o)),ee(t)&&i.set(t,c),c}function on(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&on(e,i,n,!0),r&&r.forEach(o=>on(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=nl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const nl={data:$s,props:Us,emits:Us,methods:Tt,computed:Tt,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:Tt,directives:Tt,watch:rl,provide:$s,inject:sl};function $s(e,t){return t?e?function(){return oe(B(e)?e.call(this,this):e,B(t)?t.call(this,this):t)}:t:e}function sl(e,t){return Tt(Wn(e),Wn(t))}function Wn(e){if(N(e)){const t={};for(let n=0;n1)return n&&B(t)?t.call(s&&s.proxy):t}}function cl(e,t,n,s=!1){const r={},i={};en(i,wn,1),e.propsDefaults=Object.create(null),Xr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:po(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function fl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=z(r),[c]=e.propsOptions;let a=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let p=0;p{c=!0;const[y,x]=Zr(p,t,!0);oe(o,y),x&&l.push(...x)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return ee(e)&&s.set(e,ft),ft;if(N(i))for(let d=0;d-1,x[1]=R<0||I-1||q(x,"default"))&&l.push(p)}}}const a=[o,l];return ee(e)&&s.set(e,a),a}function js(e){return e[0]!=="$"}function Bs(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Ds(e,t){return Bs(e)===Bs(t)}function Ks(e,t){return N(t)?t.findIndex(n=>Ds(n,e)):B(t)&&Ds(t,e)?0:-1}const Qr=e=>e[0]==="_"||e==="$stable",ps=e=>N(e)?e.map(Te):[Te(e)],al=(e,t,n)=>{if(t._n)return t;const s=Fo((...r)=>ps(t(...r)),n);return s._c=!1,s},Gr=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Qr(r))continue;const i=e[r];if(B(i))t[r]=al(r,i,s);else if(i!=null){const o=ps(i);t[r]=()=>o}}},ei=(e,t)=>{const n=ps(t);e.slots.default=()=>n},ul=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=z(t),en(t,"_",n)):Gr(t,e.slots={})}else e.slots={},t&&ei(e,t);en(e.slots,wn,1)},dl=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=te;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(oe(r,t),!n&&l===1&&delete r._):(i=!t.$stable,Gr(t,r)),o=t}else t&&(ei(e,t),o={default:1});if(i)for(const l in r)!Qr(l)&&!(l in o)&&delete r[l]};function cn(e,t,n,s,r=!1){if(N(e)){e.forEach((y,x)=>cn(y,t&&(N(t)?t[x]:t),n,s,r));return}if(pt(s)&&!r)return;const i=s.shapeFlag&4?_s(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,a=t&&t.r,d=l.refs===te?l.refs={}:l.refs,p=l.setupState;if(a!=null&&a!==c&&(re(a)?(d[a]=null,q(p,a)&&(p[a]=null)):ce(a)&&(a.value=null)),B(c))We(c,l,12,[o,d]);else{const y=re(c),x=ce(c);if(y||x){const I=()=>{if(e.f){const R=y?q(p,c)?p[c]:d[c]:c.value;r?N(R)&&Xn(R,i):N(R)?R.includes(i)||R.push(i):y?(d[c]=[i],q(p,c)&&(p[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else y?(d[c]=o,q(p,c)&&(p[c]=o)):x&&(c.value=o,e.k&&(d[e.k]=o))};o?(I.id=-1,de(I,n)):I()}}}let je=!1;const zt=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Yt=e=>e.nodeType===8;function hl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:a}}=e,d=(_,b)=>{if(!b.hasChildNodes()){n(null,_,b),sn(),b._vnode=_;return}je=!1,p(b.firstChild,_,null,null,null),sn(),b._vnode=_,je&&console.error("Hydration completed but contains mismatches.")},p=(_,b,H,P,K,J=!1)=>{const V=Yt(_)&&_.data==="[",A=()=>R(_,b,H,P,K,V),{type:D,ref:j,shapeFlag:Y,patchFlag:O}=b;let k=_.nodeType;b.el=_,O===-2&&(J=!1,b.dynamicChildren=null);let S=null;switch(D){case _t:k!==3?b.children===""?(c(b.el=r(""),o(_),_),S=_):S=A():(_.data!==b.children&&(je=!0,_.data=b.children),S=i(_));break;case be:k!==8||V?S=A():S=i(_);break;case It:if(V&&(_=i(_),k=_.nodeType),k===1||k===3){S=_;const ge=!b.children.length;for(let X=0;X{J=J||!!b.dynamicChildren;const{type:V,props:A,patchFlag:D,shapeFlag:j,dirs:Y}=b,O=V==="input"&&Y||V==="option";if(O||D!==-1){if(Y&&Fe(b,null,H,"created"),A)if(O||!J||D&48)for(const S in A)(O&&S.endsWith("value")||Ht(S)&&!At(S))&&s(_,S,null,A[S],!1,void 0,H);else A.onClick&&s(_,"onClick",null,A.onClick,!1,void 0,H);let k;if((k=A&&A.onVnodeBeforeMount)&&ve(k,H,b),Y&&Fe(b,null,H,"beforeMount"),((k=A&&A.onVnodeMounted)||Y)&&Ur(()=>{k&&ve(k,H,b),Y&&Fe(b,null,H,"mounted")},P),j&16&&!(A&&(A.innerHTML||A.textContent))){let S=x(_.firstChild,b,_,H,P,K,J);for(;S;){je=!0;const ge=S;S=S.nextSibling,l(ge)}}else j&8&&_.textContent!==b.children&&(je=!0,_.textContent=b.children)}return _.nextSibling},x=(_,b,H,P,K,J,V)=>{V=V||!!b.dynamicChildren;const A=b.children,D=A.length;for(let j=0;j{const{slotScopeIds:V}=b;V&&(K=K?K.concat(V):V);const A=o(_),D=x(i(_),b,A,H,P,K,J);return D&&Yt(D)&&D.data==="]"?i(b.anchor=D):(je=!0,c(b.anchor=a("]"),A,D),D)},R=(_,b,H,P,K,J)=>{if(je=!0,b.el=null,J){const D=$(_);for(;;){const j=i(_);if(j&&j!==D)l(j);else break}}const V=i(_),A=o(_);return l(_),n(null,b,A,V,H,P,zt(A),K),V},$=_=>{let b=0;for(;_;)if(_=i(_),_&&Yt(_)&&(_.data==="["&&b++,_.data==="]")){if(b===0)return i(_);b--}return _};return[d,p]}const de=Ur;function pl(e){return gl(e,hl)}function gl(e,t){const n=Nn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:a,setElementText:d,parentNode:p,nextSibling:y,setScopeId:x=Pe,insertStaticContent:I}=e,R=(f,u,h,m=null,g=null,w=null,T=!1,C=null,E=!!u.dynamicChildren)=>{if(f===u)return;f&&!Ge(f,u)&&(m=Bt(f),Ie(f,g,w,!0),f=null),u.patchFlag===-2&&(E=!1,u.dynamicChildren=null);const{type:v,ref:M,shapeFlag:F}=u;switch(v){case _t:$(f,u,h,m);break;case be:_(f,u,h,m);break;case It:f==null&&b(u,h,m,T);break;case he:O(f,u,h,m,g,w,T,C,E);break;default:F&1?K(f,u,h,m,g,w,T,C,E):F&6?k(f,u,h,m,g,w,T,C,E):(F&64||F&128)&&v.process(f,u,h,m,g,w,T,C,E,it)}M!=null&&g&&cn(M,f&&f.ref,w,u||f,!u)},$=(f,u,h,m)=>{if(f==null)s(u.el=l(u.children),h,m);else{const g=u.el=f.el;u.children!==f.children&&a(g,u.children)}},_=(f,u,h,m)=>{f==null?s(u.el=c(u.children||""),h,m):u.el=f.el},b=(f,u,h,m)=>{[f.el,f.anchor]=I(f.children,u,h,m,f.el,f.anchor)},H=({el:f,anchor:u},h,m)=>{let g;for(;f&&f!==u;)g=y(f),s(f,h,m),f=g;s(u,h,m)},P=({el:f,anchor:u})=>{let h;for(;f&&f!==u;)h=y(f),r(f),f=h;r(u)},K=(f,u,h,m,g,w,T,C,E)=>{T=T||u.type==="svg",f==null?J(u,h,m,g,w,T,C,E):D(f,u,g,w,T,C,E)},J=(f,u,h,m,g,w,T,C)=>{let E,v;const{type:M,props:F,shapeFlag:L,transition:U,dirs:W}=f;if(E=f.el=o(f.type,w,F&&F.is,F),L&8?d(E,f.children):L&16&&A(f.children,E,null,m,g,w&&M!=="foreignObject",T,C),W&&Fe(f,null,m,"created"),V(E,f,f.scopeId,T,m),F){for(const Z in F)Z!=="value"&&!At(Z)&&i(E,Z,null,F[Z],w,f.children,m,g,Le);"value"in F&&i(E,"value",null,F.value),(v=F.onVnodeBeforeMount)&&ve(v,m,f)}W&&Fe(f,null,m,"beforeMount");const G=(!g||g&&!g.pendingBranch)&&U&&!U.persisted;G&&U.beforeEnter(E),s(E,u,h),((v=F&&F.onVnodeMounted)||G||W)&&de(()=>{v&&ve(v,m,f),G&&U.enter(E),W&&Fe(f,null,m,"mounted")},g)},V=(f,u,h,m,g)=>{if(h&&x(f,h),m)for(let w=0;w{for(let v=E;v{const C=u.el=f.el;let{patchFlag:E,dynamicChildren:v,dirs:M}=u;E|=f.patchFlag&16;const F=f.props||te,L=u.props||te;let U;h&&Je(h,!1),(U=L.onVnodeBeforeUpdate)&&ve(U,h,u,f),M&&Fe(u,f,h,"beforeUpdate"),h&&Je(h,!0);const W=g&&u.type!=="foreignObject";if(v?j(f.dynamicChildren,v,C,h,m,W,w):T||Q(f,u,C,null,h,m,W,w,!1),E>0){if(E&16)Y(C,u,F,L,h,m,g);else if(E&2&&F.class!==L.class&&i(C,"class",null,L.class,g),E&4&&i(C,"style",F.style,L.style,g),E&8){const G=u.dynamicProps;for(let Z=0;Z{U&&ve(U,h,u,f),M&&Fe(u,f,h,"updated")},m)},j=(f,u,h,m,g,w,T)=>{for(let C=0;C{if(h!==m){if(h!==te)for(const C in h)!At(C)&&!(C in m)&&i(f,C,h[C],null,T,u.children,g,w,Le);for(const C in m){if(At(C))continue;const E=m[C],v=h[C];E!==v&&C!=="value"&&i(f,C,v,E,T,u.children,g,w,Le)}"value"in m&&i(f,"value",h.value,m.value)}},O=(f,u,h,m,g,w,T,C,E)=>{const v=u.el=f?f.el:l(""),M=u.anchor=f?f.anchor:l("");let{patchFlag:F,dynamicChildren:L,slotScopeIds:U}=u;U&&(C=C?C.concat(U):U),f==null?(s(v,h,m),s(M,h,m),A(u.children,h,M,g,w,T,C,E)):F>0&&F&64&&L&&f.dynamicChildren?(j(f.dynamicChildren,L,h,g,w,T,C),(u.key!=null||g&&u===g.subTree)&&ti(f,u,!0)):Q(f,u,h,M,g,w,T,C,E)},k=(f,u,h,m,g,w,T,C,E)=>{u.slotScopeIds=C,f==null?u.shapeFlag&512?g.ctx.activate(u,h,m,T,E):S(u,h,m,g,w,T,E):ge(f,u,E)},S=(f,u,h,m,g,w,T)=>{const C=f.component=El(f,m,g);if(Ut(f)&&(C.ctx.renderer=it),Tl(C),C.asyncDep){if(g&&g.registerDep(C,X),!f.el){const E=C.subTree=se(be);_(null,E,u,h)}return}X(C,f,u,h,g,w,T)},ge=(f,u,h)=>{const m=u.component=f.component;if(Lo(f,u,h))if(m.asyncDep&&!m.asyncResolved){ne(m,u,h);return}else m.next=u,Ro(m.update),m.update();else u.el=f.el,m.vnode=u},X=(f,u,h,m,g,w,T)=>{const C=()=>{if(f.isMounted){let{next:M,bu:F,u:L,parent:U,vnode:W}=f,G=M,Z;Je(f,!1),M?(M.el=W.el,ne(f,M,T)):M=W,F&&Tn(F),(Z=M.props&&M.props.onVnodeBeforeUpdate)&&ve(Z,U,M,W),Je(f,!0);const ie=An(f),xe=f.subTree;f.subTree=ie,R(xe,ie,p(xe.el),Bt(xe),f,g,w),M.el=ie.el,G===null&&No(f,ie.el),L&&de(L,g),(Z=M.props&&M.props.onVnodeUpdated)&&de(()=>ve(Z,U,M,W),g)}else{let M;const{el:F,props:L}=u,{bm:U,m:W,parent:G}=f,Z=pt(u);if(Je(f,!1),U&&Tn(U),!Z&&(M=L&&L.onVnodeBeforeMount)&&ve(M,G,u),Je(f,!0),F&&En){const ie=()=>{f.subTree=An(f),En(F,f.subTree,f,g,null)};Z?u.type.__asyncLoader().then(()=>!f.isUnmounted&&ie()):ie()}else{const ie=f.subTree=An(f);R(null,ie,h,m,f,g,w),u.el=ie.el}if(W&&de(W,g),!Z&&(M=L&&L.onVnodeMounted)){const ie=u;de(()=>ve(M,G,ie),g)}(u.shapeFlag&256||G&&pt(G.vnode)&&G.vnode.shapeFlag&256)&&f.a&&de(f.a,g),f.isMounted=!0,u=h=m=null}},E=f.effect=new ns(C,()=>gn(v),f.scope),v=f.update=()=>E.run();v.id=f.uid,Je(f,!0),v()},ne=(f,u,h)=>{u.component=f;const m=f.vnode.props;f.vnode=u,f.next=null,fl(f,u.props,m,h),dl(f,u.children,h),vt(),Fs(),Ct()},Q=(f,u,h,m,g,w,T,C,E=!1)=>{const v=f&&f.children,M=f?f.shapeFlag:0,F=u.children,{patchFlag:L,shapeFlag:U}=u;if(L>0){if(L&128){jt(v,F,h,m,g,w,T,C,E);return}else if(L&256){ze(v,F,h,m,g,w,T,C,E);return}}U&8?(M&16&&Le(v,g,w),F!==v&&d(h,F)):M&16?U&16?jt(v,F,h,m,g,w,T,C,E):Le(v,g,w,!0):(M&8&&d(h,""),U&16&&A(F,h,m,g,w,T,C,E))},ze=(f,u,h,m,g,w,T,C,E)=>{f=f||ft,u=u||ft;const v=f.length,M=u.length,F=Math.min(v,M);let L;for(L=0;LM?Le(f,g,w,!0,!1,F):A(u,h,m,g,w,T,C,E,F)},jt=(f,u,h,m,g,w,T,C,E)=>{let v=0;const M=u.length;let F=f.length-1,L=M-1;for(;v<=F&&v<=L;){const U=f[v],W=u[v]=E?Ke(u[v]):Te(u[v]);if(Ge(U,W))R(U,W,h,null,g,w,T,C,E);else break;v++}for(;v<=F&&v<=L;){const U=f[F],W=u[L]=E?Ke(u[L]):Te(u[L]);if(Ge(U,W))R(U,W,h,null,g,w,T,C,E);else break;F--,L--}if(v>F){if(v<=L){const U=L+1,W=UL)for(;v<=F;)Ie(f[v],g,w,!0),v++;else{const U=v,W=v,G=new Map;for(v=W;v<=L;v++){const me=u[v]=E?Ke(u[v]):Te(u[v]);me.key!=null&&G.set(me.key,v)}let Z,ie=0;const xe=L-W+1;let ot=!1,vs=0;const wt=new Array(xe);for(v=0;v=xe){Ie(me,g,w,!0);continue}let Oe;if(me.key!=null)Oe=G.get(me.key);else for(Z=W;Z<=L;Z++)if(wt[Z-W]===0&&Ge(me,u[Z])){Oe=Z;break}Oe===void 0?Ie(me,g,w,!0):(wt[Oe-W]=v+1,Oe>=vs?vs=Oe:ot=!0,R(me,u[Oe],h,null,g,w,T,C,E),ie++)}const Cs=ot?ml(wt):ft;for(Z=Cs.length-1,v=xe-1;v>=0;v--){const me=W+v,Oe=u[me],ws=me+1{const{el:w,type:T,transition:C,children:E,shapeFlag:v}=f;if(v&6){Ye(f.component.subTree,u,h,m);return}if(v&128){f.suspense.move(u,h,m);return}if(v&64){T.move(f,u,h,it);return}if(T===he){s(w,u,h);for(let F=0;FC.enter(w),g);else{const{leave:F,delayLeave:L,afterLeave:U}=C,W=()=>s(w,u,h),G=()=>{F(w,()=>{W(),U&&U()})};L?L(w,W,G):G()}else s(w,u,h)},Ie=(f,u,h,m=!1,g=!1)=>{const{type:w,props:T,ref:C,children:E,dynamicChildren:v,shapeFlag:M,patchFlag:F,dirs:L}=f;if(C!=null&&cn(C,null,h,f,!0),M&256){u.ctx.deactivate(f);return}const U=M&1&&L,W=!pt(f);let G;if(W&&(G=T&&T.onVnodeBeforeUnmount)&&ve(G,u,f),M&6)wi(f.component,h,m);else{if(M&128){f.suspense.unmount(h,m);return}U&&Fe(f,null,u,"beforeUnmount"),M&64?f.type.remove(f,u,h,g,it,m):v&&(w!==he||F>0&&F&64)?Le(v,u,h,!1,!0):(w===he&&F&384||!g&&M&16)&&Le(E,u,h),m&&bs(f)}(W&&(G=T&&T.onVnodeUnmounted)||U)&&de(()=>{G&&ve(G,u,f),U&&Fe(f,null,u,"unmounted")},h)},bs=f=>{const{type:u,el:h,anchor:m,transition:g}=f;if(u===he){Ci(h,m);return}if(u===It){P(f);return}const w=()=>{r(h),g&&!g.persisted&&g.afterLeave&&g.afterLeave()};if(f.shapeFlag&1&&g&&!g.persisted){const{leave:T,delayLeave:C}=g,E=()=>T(h,w);C?C(f.el,w,E):E()}else w()},Ci=(f,u)=>{let h;for(;f!==u;)h=y(f),r(f),f=h;r(u)},wi=(f,u,h)=>{const{bum:m,scope:g,update:w,subTree:T,um:C}=f;m&&Tn(m),g.stop(),w&&(w.active=!1,Ie(T,f,u,h)),C&&de(C,u),de(()=>{f.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Le=(f,u,h,m=!1,g=!1,w=0)=>{for(let T=w;Tf.shapeFlag&6?Bt(f.component.subTree):f.shapeFlag&128?f.suspense.next():y(f.anchor||f.el),ys=(f,u,h)=>{f==null?u._vnode&&Ie(u._vnode,null,null,!0):R(u._vnode||null,f,u,null,null,null,h),Fs(),sn(),u._vnode=f},it={p:R,um:Ie,m:Ye,r:bs,mt:S,mc:A,pc:Q,pbc:j,n:Bt,o:e};let xn,En;return t&&([xn,En]=t(it)),{render:ys,hydrate:xn,createApp:ol(ys,xn)}}function Je({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ti(e,t,n=!1){const s=e.children,r=t.children;if(N(s)&&N(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const _l=e=>e.__isTeleport,he=Symbol.for("v-fgt"),_t=Symbol.for("v-txt"),be=Symbol.for("v-cmt"),It=Symbol.for("v-stc"),Ot=[];let Re=null;function ni(e=!1){Ot.push(Re=e?null:[])}function bl(){Ot.pop(),Re=Ot[Ot.length-1]||null}let Nt=1;function ks(e){Nt+=e}function si(e){return e.dynamicChildren=Nt>0?Re||ft:null,bl(),Nt>0&&Re&&Re.push(e),e}function Vc(e,t,n,s,r,i){return si(oi(e,t,n,s,r,i,!0))}function ri(e,t,n,s,r){return si(se(e,t,n,s,r,!0))}function fn(e){return e?e.__v_isVNode===!0:!1}function Ge(e,t){return e.type===t.type&&e.key===t.key}const wn="__vInternal",ii=({key:e})=>e??null,Qt=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||ce(e)||B(e)?{i:ae,r:e,k:t,f:!!n}:e:null);function oi(e,t=null,n=null,s=0,r=null,i=e===he?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ii(t),ref:t&&Qt(t),scopeId:_n,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:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ae};return l?(gs(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),Nt>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const se=yl;function yl(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Vr)&&(e=be),fn(e)){const l=qe(e,t,!0);return n&&gs(l,n),Nt>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(Il(e)&&(e=e.__vccOpts),t){t=vl(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=es(l)),ee(c)&&(Or(c)&&!N(c)&&(c=oe({},c)),t.style=Gn(c))}const o=re(e)?1:Ho(e)?128:_l(e)?64:ee(e)?4:B(e)?2:0;return oi(e,t,n,s,r,o,i,!0)}function vl(e){return e?Or(e)||wn in e?oe({},e):e:null}function qe(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?Cl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&ii(l),ref:t&&t.ref?n&&r?N(r)?r.concat(Qt(t)):[r,Qt(t)]:Qt(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==he?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,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}}function li(e=" ",t=0){return se(_t,null,e,t)}function qc(e,t){const n=se(It,null,e);return n.staticCount=t,n}function zc(e="",t=!1){return t?(ni(),ri(be,null,e)):se(be,null,e)}function Te(e){return e==null||typeof e=="boolean"?se(be):N(e)?se(he,null,e.slice()):typeof e=="object"?Ke(e):se(_t,null,String(e))}function Ke(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:qe(e)}function gs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(N(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),gs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(wn in t)?t._ctx=ae:r===3&&ae&&(ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else B(t)?(t={default:t,_ctx:ae},n=32):(t=String(t),s&64?(n=16,t=[li(t)]):n=8);e.children=t,e.shapeFlag|=n}function Cl(...e){const t={};for(let n=0;nle||ae;let ms,lt,Ws="__VUE_INSTANCE_SETTERS__";(lt=Nn()[Ws])||(lt=Nn()[Ws]=[]),lt.push(e=>le=e),ms=e=>{lt.length>1?lt.forEach(t=>t(e)):lt[0](e)};const bt=e=>{ms(e),e.scope.on()},st=()=>{le&&le.scope.off(),ms(null)};function fi(e){return e.vnode.shapeFlag&4}let yt=!1;function Tl(e,t=!1){yt=t;const{props:n,children:s}=e.vnode,r=fi(e);cl(e,n,r,t),ul(e,s);const i=r?Al(e,t):void 0;return yt=!1,i}function Al(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Rt(new Proxy(e.ctx,Qo));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?ui(e):null;bt(e),vt();const i=We(s,e,0,[e.props,r]);if(Ct(),st(),pr(i)){if(i.then(st,st),t)return i.then(o=>{Vs(e,o,t)}).catch(o=>{$t(o,e,0)});e.asyncDep=i}else Vs(e,i,t)}else ai(e,t)}function Vs(e,t,n){B(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ee(t)&&(e.setupState=Sr(t)),ai(e,n)}let qs;function ai(e,t,n){const s=e.type;if(!e.render){if(!t&&qs&&!s.render){const r=s.template||hs(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,a=oe(oe({isCustomElement:i,delimiters:l},o),c);s.render=qs(r,a)}}e.render=s.render||Pe}bt(e),vt(),el(e),Ct(),st()}function Rl(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return pe(e,"get","$attrs"),t[n]}}))}function ui(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return Rl(e)},slots:e.slots,emit:e.emit,expose:t}}function _s(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Sr(Rt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Pt)return Pt[n](e)},has(t,n){return n in t||n in Pt}}))}function Pl(e,t=!0){return B(e)?e.displayName||e.name:e.name||t&&e.__name}function Il(e){return B(e)&&"__vccOpts"in e}const Ee=(e,t)=>Eo(e,t,yt);function qn(e,t,n){const s=arguments.length;return s===2?ee(t)&&!N(t)?fn(t)?se(e,null,[t]):se(e,t):se(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&fn(n)&&(n=[n]),se(e,t,n))}const Ol=Symbol.for("v-scx"),Fl=()=>gt(Ol),Sl="3.3.4",Ml="http://www.w3.org/2000/svg",et=typeof document<"u"?document:null,zs=et&&et.createElement("template"),Ll={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?et.createElementNS(Ml,e):et.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>et.createTextNode(e),createComment:e=>et.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>et.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{zs.innerHTML=s?`${e}`:e;const l=zs.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Nl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Hl(e,t,n){const s=e.style,r=re(n);if(n&&!r){if(t&&!re(t))for(const i in t)n[i]==null&&zn(s,i,"");for(const i in n)zn(s,i,n[i])}else{const i=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const Ys=/\s*!important$/;function zn(e,t,n){if(N(n))n.forEach(s=>zn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=$l(e,t);Ys.test(n)?e.setProperty(rt(s),n.replace(Ys,""),"important"):e[s]=n}}const Js=["Webkit","Moz","ms"],On={};function $l(e,t){const n=On[t];if(n)return n;let s=Me(t);if(s!=="filter"&&s in e)return On[t]=s;s=dn(s);for(let r=0;rFn||(Wl.then(()=>Fn=0),Fn=Date.now());function ql(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;we(zl(s,n.value),t,5,[s])};return n.value=e,n.attached=Vl(),n}function zl(e,t){if(N(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Qs=/^on[a-z]/,Yl=(e,t,n,s,r=!1,i,o,l,c)=>{t==="class"?Nl(e,s,r):t==="style"?Hl(e,n,s):Ht(t)?Jn(t)||Kl(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Jl(e,t,s,r))?jl(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Ul(e,t,s,r))};function Jl(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Qs.test(t)&&B(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Qs.test(t)&&re(n)?!1:t in e}const Be="transition",xt="animation",di=(e,{slots:t})=>qn(Do,Xl(e),t);di.displayName="Transition";const hi={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};di.props=oe({},Br,hi);const Xe=(e,t=[])=>{N(e)?e.forEach(n=>n(...t)):e&&e(...t)},Gs=e=>e?N(e)?e.some(t=>t.length>1):e.length>1:!1;function Xl(e){const t={};for(const O in e)O in hi||(t[O]=e[O]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=o,appearToClass:d=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:y=`${n}-leave-active`,leaveToClass:x=`${n}-leave-to`}=e,I=Zl(r),R=I&&I[0],$=I&&I[1],{onBeforeEnter:_,onEnter:b,onEnterCancelled:H,onLeave:P,onLeaveCancelled:K,onBeforeAppear:J=_,onAppear:V=b,onAppearCancelled:A=H}=t,D=(O,k,S)=>{Ze(O,k?d:l),Ze(O,k?a:o),S&&S()},j=(O,k)=>{O._isLeaving=!1,Ze(O,p),Ze(O,x),Ze(O,y),k&&k()},Y=O=>(k,S)=>{const ge=O?V:b,X=()=>D(k,O,S);Xe(ge,[k,X]),er(()=>{Ze(k,O?c:i),De(k,O?d:l),Gs(ge)||tr(k,s,R,X)})};return oe(t,{onBeforeEnter(O){Xe(_,[O]),De(O,i),De(O,o)},onBeforeAppear(O){Xe(J,[O]),De(O,c),De(O,a)},onEnter:Y(!1),onAppear:Y(!0),onLeave(O,k){O._isLeaving=!0;const S=()=>j(O,k);De(O,p),ec(),De(O,y),er(()=>{O._isLeaving&&(Ze(O,p),De(O,x),Gs(P)||tr(O,s,$,S))}),Xe(P,[O,S])},onEnterCancelled(O){D(O,!1),Xe(H,[O])},onAppearCancelled(O){D(O,!0),Xe(A,[O])},onLeaveCancelled(O){j(O),Xe(K,[O])}})}function Zl(e){if(e==null)return null;if(ee(e))return[Sn(e.enter),Sn(e.leave)];{const t=Sn(e);return[t,t]}}function Sn(e){return Oi(e)}function De(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Ze(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function er(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ql=0;function tr(e,t,n,s){const r=e._endId=++Ql,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=Gl(e,t);if(!o)return s();const a=o+"end";let d=0;const p=()=>{e.removeEventListener(a,y),i()},y=x=>{x.target===e&&++d>=c&&p()};setTimeout(()=>{d(n[I]||"").split(", "),r=s(`${Be}Delay`),i=s(`${Be}Duration`),o=nr(r,i),l=s(`${xt}Delay`),c=s(`${xt}Duration`),a=nr(l,c);let d=null,p=0,y=0;t===Be?o>0&&(d=Be,p=o,y=i.length):t===xt?a>0&&(d=xt,p=a,y=c.length):(p=Math.max(o,a),d=p>0?o>a?Be:xt:null,y=d?d===Be?i.length:c.length:0);const x=d===Be&&/\b(transform|all)(,|$)/.test(s(`${Be}Property`).toString());return{type:d,timeout:p,propCount:y,hasTransform:x}}function nr(e,t){for(;e.lengthsr(n)+sr(e[s])))}function sr(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function ec(){return document.body.offsetHeight}const tc=["ctrl","shift","alt","meta"],nc={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)=>tc.some(n=>e[`${n}Key`]&&!t.includes(n))},Yc=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=rt(n.key);if(t.some(r=>r===s||sc[r]===s))return e(n)},rc=oe({patchProp:Yl},Ll);let Mn,rr=!1;function ic(){return Mn=rr?Mn:pl(rc),rr=!0,Mn}const Xc=(...e)=>{const t=ic().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=oc(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function oc(e){return re(e)?document.querySelector(e):e}const Zc=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},lc="modulepreload",cc=function(e){return"/"+e},ir={},Qc=function(t,n,s){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=cc(i),i in ir)return;ir[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!s)for(let d=r.length-1;d>=0;d--){const p=r[d];if(p.href===i&&(!o||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const a=document.createElement("link");if(a.rel=o?"stylesheet":lc,o||(a.as="script",a.crossOrigin=""),a.href=i,document.head.appendChild(a),o)return new Promise((d,p)=>{a.addEventListener("load",d),a.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t())},fc=window.__VP_SITE_DATA__,pi=/^[a-z]+:/i,Gc=/^pathname:\/\//,ef="vitepress-theme-appearance",gi=/#.*$/,ac=/(index)?\.(md|html)$/,Ce=typeof document<"u",mi={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function uc(e,t,n=!1){if(t===void 0)return!1;if(e=or(`/${e}`),n)return new RegExp(t).test(e);if(or(t)!==e)return!1;const s=t.match(gi);return s?(Ce?location.hash:"")===s[0]:!0}function or(e){return decodeURI(e).replace(gi,"").replace(ac,"")}function dc(e){return pi.test(e)}function hc(e,t){var s,r,i,o,l,c,a;const n=Object.keys(e.locales).find(d=>d!=="root"&&!dc(d)&&uc(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.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 _i(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=pc(e.title,s);return`${n}${r}`}function pc(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function gc(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function bi(e,t){return[...e.filter(n=>!gc(t,n)),...t]}const mc=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,_c=/^[a-z]:/i;function lr(e){const t=_c.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(mc,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const bc=Symbol(),tt=go(fc);function tf(e){const t=Ee(()=>hc(tt.value,e.data.relativePath));return{site:t,theme:Ee(()=>t.value.themeConfig),page:Ee(()=>e.data),frontmatter:Ee(()=>e.data.frontmatter),params:Ee(()=>e.data.params),lang:Ee(()=>t.value.lang),dir:Ee(()=>t.value.dir),localeIndex:Ee(()=>t.value.localeIndex||"root"),title:Ee(()=>_i(t.value,e.data)),description:Ee(()=>e.data.description||t.value.description),isDark:dt(!1)}}function nf(){const e=gt(bc);if(!e)throw new Error("vitepress data not properly injected in app");return e}function yc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function cr(e){return pi.test(e)||e.startsWith(".")?e:yc(tt.value.base,e)}function vc(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ce){const n="/";t=lr(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),t=`${n}assets/${t}.${s}.js`}else t=`./${lr(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Gt=[];function sf(e){Gt.push(e),Cn(()=>{Gt=Gt.filter(t=>t!==e)})}const Cc=Symbol(),fr="http://a.com",wc=()=>({path:"/",component:null,data:mi});function rf(e,t){const n=pn(wc()),s={route:n,go:r};async function r(l=Ce?location.href:"/"){var a,d;await((a=s.onBeforeRouteChange)==null?void 0:a.call(s,l));const c=new URL(l,fr);tt.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),Ce&&l!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",l)),await o(l),await((d=s.onAfterRouteChanged)==null?void 0:d.call(s,l))}let i=null;async function o(l,c=0,a=!1){const d=new URL(l,fr),p=i=d.pathname;try{let y=await e(p);if(i===p){i=null;const{default:x,__pageData:I}=y;if(!x)throw new Error(`Invalid route component: ${x}`);n.path=Ce?p:cr(p),n.component=Rt(x),n.data=Rt(I),Ce&&Lr(()=>{let R=tt.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!tt.value.cleanUrls&&!R.endsWith("/")&&(R+=".html"),R!==d.pathname&&(d.pathname=R,l=R+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let $=null;try{$=document.querySelector(decodeURIComponent(d.hash))}catch(_){console.warn(_)}if($){ar($,d.hash);return}}window.scrollTo(0,c)})}}catch(y){if(!/fetch/.test(y.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(y),!a)try{const x=await fetch(tt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await x.json(),await o(l,c,!0);return}catch{}i===p&&(i=null,n.path=Ce?p:cr(p),n.component=t?Rt(t):null,n.data=mi)}}return Ce&&(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:d}=a,{href:p,origin:y,pathname:x,hash:I,search:R}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),$=window.location,_=x.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&d!=="_blank"&&y===$.origin&&!(_&&_[0]!==".html")&&(l.preventDefault(),x===$.pathname&&R===$.search?I&&(I!==$.hash&&(history.pushState(null,"",I),window.dispatchEvent(new Event("hashchange"))),ar(a,I,a.classList.contains("header-anchor"))):r(p))}},{capture:!0}),window.addEventListener("popstate",l=>{o(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function xc(){const e=gt(Cc);if(!e)throw new Error("useRouter() is called without provider.");return e}function yi(){return xc().route}function ar(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(r){console.warn(r)}if(s){const r=tt.value.scrollOffset;let i=0;if(typeof r=="number")i=r;else if(typeof r=="string")i=ur(r);else if(Array.isArray(r))for(const c of r){const a=ur(c);if(a){i=a;break}}const o=parseInt(window.getComputedStyle(s).paddingTop,10),l=window.scrollY+s.getBoundingClientRect().top-i+o;!n||Math.abs(l-window.scrollY)>window.innerHeight?window.scrollTo(0,l):window.scrollTo({left:0,top:l,behavior:"smooth"})}}function ur(e){const t=document.querySelector(e);if(!t)return 0;const n=t.getBoundingClientRect().bottom;return n<0?0:n+24}const dr=()=>Gt.forEach(e=>e()),of=us({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=yi();return()=>qn(e.as,{style:{position:"relative"}},[t.component?qn(t.component,{onVnodeMounted:dr,onVnodeUpdated:dr}):"404 Page Not Found"])}});function lf(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}n.forEach(o=>document.head.removeChild(o)),n=[],i.forEach(o=>{const l=Ec(o);document.head.appendChild(l),n.push(l)})};$o(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=_i(o,i),document.querySelector("meta[name=description]").setAttribute("content",l||o.description),r(bi(o.head,Ac(c)))})}function Ec([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function Tc(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Ac(e){return e.filter(t=>!Tc(t))}const Ln=new Set,vi=()=>document.createElement("link"),Rc=e=>{const t=vi();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Pc=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Jt;const Ic=Ce&&(Jt=vi())&&Jt.relList&&Jt.relList.supports&&Jt.relList.supports("prefetch")?Rc:Pc;function cf(){if(!Ce||!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 s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Ln.has(c)){Ln.add(c);const a=vc(c);Ic(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{target:o}=i,{hostname:l,pathname:c}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),a=c.match(/\.\w+$/);a&&a[0]!==".html"||o!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(i):Ln.add(c))})})};vn(s);const r=yi();Zt(()=>r.path,s),Cn(()=>{n&&n.disconnect()})}const ff=us({setup(e,{slots:t}){const n=dt(!1);return vn(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function af(){if(Ce){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` -`),l=l.slice(0,-1),o&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),Oc(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function Oc(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 s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function uf(){Ce&&window.addEventListener("click",e=>{var n,s;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement,i=Array.from((r==null?void 0:r.querySelectorAll("input"))||[]).indexOf(t),o=r==null?void 0:r.querySelector('div[class*="language-"].active'),l=(s=r==null?void 0:r.querySelectorAll('div[class*="language-"]:not(.language-id)'))==null?void 0:s[i];o&&l&&o!==l&&(o.classList.remove("active"),l.classList.add("active"))}})}export{Jc as $,ri as A,Fo as B,zc as C,jc as D,Cl as E,he as F,se as G,Gn as H,Uc as I,Qc as J,Bc as K,pi as L,Ce as M,Dc as N,Nc as O,Gc as P,Hc as Q,qc as R,ef as S,di as T,gt as U,ll as V,zo as W,sf as X,Lr as Y,go as Z,Zc as _,li as a,kc as a0,$c as a1,Yc as a2,Wc as a3,lf as a4,Cc as a5,tf as a6,bc as a7,of as a8,ff as a9,tt as aa,Xc as ab,rf as ac,vc as ad,cf as ae,af,uf as ag,qn as ah,xc as ai,_o as b,Vc as c,us as d,Lc as e,Ir as f,Mc as g,dt as h,ji as i,Sc as j,$o as k,Ee as l,ci as m,es as n,ni as o,vn as p,dc as q,Kc as r,cr as s,Fc as t,nf as u,uc as v,Zt as w,yi as x,Cn as y,oi as z}; diff --git a/docs/assets/chunks/theme.0b40695b.js b/docs/assets/chunks/theme.0b40695b.js new file mode 100644 index 00000000..bd3e477f --- /dev/null +++ b/docs/assets/chunks/theme.0b40695b.js @@ -0,0 +1,7 @@ +import{d as g,o as a,c as l,r as c,n as B,a as x,t as S,_ as m,b,w as v,T as he,e as f,u as nt,i as st,P as ot,f as fe,g as k,h as V,j as F,k as u,l as i,p as D,m as z,q as at,s as De,v as rt,x as it,y as lt,z as K,A as J,B as ct,C as W,D as te,E as le,F as ut,G as U,H as C,I as H,J as me,K as Z,L as h,M as j,N as ze,O as se,Q as ge,R as Fe,S as dt,U as _t,V as Oe,W as Ae,X as vt,Y as pt,Z as oe,$ as ht,a0 as ft,a1 as mt,a2 as gt,a3 as yt}from"./framework.1eef7d9b.js";const bt=g({__name:"VPBadge",props:{text:{},type:{}},setup(n){return(e,t)=>(a(),l("span",{class:B(["VPBadge",e.type??"tip"])},[c(e.$slots,"default",{},()=>[x(S(e.text),1)],!0)],2))}});const kt=m(bt,[["__scopeId","data-v-ce917cfb"]]),$t={key:0,class:"VPBackdrop"},Pt=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),b(he,{name:"fade"},{default:v(()=>[e.show?(a(),l("div",$t)):f("",!0)]),_:1}))}});const Vt=m(Pt,[["__scopeId","data-v-54a304ca"]]),P=nt;function wt(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),s=!0,setTimeout(()=>{s=!1},e))}}function _e(n){return/^\//.test(n)?n:`/${n}`}function ee(n){if(st(n))return n.replace(ot,"");const{site:e}=P(),{pathname:t,search:s,hash:o}=new URL(n,"http://a.com"),r=t.endsWith("/")||t.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${s}${o}`);return fe(r)}function ne({removeCurrent:n=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:s,page:o,theme:r}=P(),d=k(()=>{var _,y;return{label:(_=t.value.locales[s.value])==null?void 0:_.label,link:((y=t.value.locales[s.value])==null?void 0:y.link)||(s.value==="root"?"/":`/${s.value}/`)}});return{localeLinks:k(()=>Object.entries(t.value.locales).flatMap(([_,y])=>n&&d.value.label===y.label?[]:{text:y.label,link:St(y.link||(_==="root"?"/":`/${_}/`),r.value.i18nRouting!==!1&&e,o.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function St(n,e,t,s){return e?n.replace(/\/$/,"")+_e(t.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const ce=n=>(D("data-v-e5bd6573"),n=n(),z(),n),Lt={class:"NotFound"},Mt=ce(()=>u("p",{class:"code"},"404",-1)),Ct=ce(()=>u("h1",{class:"title"},"PAGE NOT FOUND",-1)),It=ce(()=>u("div",{class:"divider"},null,-1)),Tt=ce(()=>u("blockquote",{class:"quote"}," But if you don't change your direction, and if you keep looking, you may end up where you are heading. ",-1)),Bt={class:"action"},Nt=["href"],At=g({__name:"NotFound",setup(n){const{site:e}=P(),{localeLinks:t}=ne({removeCurrent:!1}),s=V("/");return F(()=>{var r;const o=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");t.value.length&&(s.value=((r=t.value.find(({link:d})=>d.startsWith(o)))==null?void 0:r.link)||t.value[0].link)}),(o,r)=>(a(),l("div",Lt,[Mt,Ct,It,Tt,u("div",Bt,[u("a",{class:"link",href:i(fe)(s.value),"aria-label":"go to home"}," Take me home ",8,Nt)])]))}});const xt=m(At,[["__scopeId","data-v-e5bd6573"]]);function Ge(n){return it()?(lt(n),!0):!1}function Re(n){return typeof n=="function"?n():i(n)}const Ht=typeof window<"u",Ue=()=>{};function Et(...n){if(n.length!==1)return at(...n);const e=n[0];return typeof e=="function"?De(rt(()=>({get:e,set:Ue}))):V(e)}function Dt(n){var e;const t=Re(n);return(e=t==null?void 0:t.$el)!=null?e:t}const ye=Ht?window:void 0;function zt(...n){let e,t,s,o;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,s,o]=n,e=ye):[e,t,s,o]=n,!e)return Ue;Array.isArray(t)||(t=[t]),Array.isArray(s)||(s=[s]);const r=[],d=()=>{r.forEach(L=>L()),r.length=0},p=(L,N,I,w)=>(L.addEventListener(N,I,w),()=>L.removeEventListener(N,I,w)),_=K(()=>[Dt(e),Re(o)],([L,N])=>{d(),L&&r.push(...t.flatMap(I=>s.map(w=>p(L,I,w,N))))},{immediate:!0,flush:"post"}),y=()=>{_(),d()};return Ge(y),y}function Ft(){const n=V(!1);return ct()&&F(()=>{n.value=!0}),n}function Ot(n){const e=Ft();return k(()=>(e.value,!!n()))}function ve(n,e={}){const{window:t=ye}=e,s=Ot(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let o;const r=V(!1),d=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",p):o.removeListener(p))},p=()=>{s.value&&(d(),o=t.matchMedia(Et(n).value),r.value=!!(o!=null&&o.matches),o&&("addEventListener"in o?o.addEventListener("change",p):o.addListener(p)))};return J(p),Ge(()=>d()),r}function je({window:n=ye}={}){if(!n)return{x:V(0),y:V(0)};const e=V(n.scrollX),t=V(n.scrollY);return zt(n,"scroll",()=>{e.value=n.scrollX,t.value=n.scrollY},{capture:!1,passive:!0}),{x:e,y:t}}function qe(n,e){if(Array.isArray(n))return n;if(n==null)return[];e=_e(e);const t=Object.keys(n).sort((s,o)=>o.split("/").length-s.split("/").length).find(s=>e.startsWith(_e(s)));return t?n[t]:[]}function Gt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Rt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link}),o.items&&t(o.items)}return t(n),e}function pe(n,e){return Array.isArray(e)?e.some(t=>pe(n,t)):W(n,e.link)?!0:e.items?pe(n,e.items):!1}function O(){const n=te(),{theme:e,frontmatter:t}=P(),s=ve("(min-width: 960px)"),o=V(!1),r=k(()=>{const A=e.value.sidebar,M=n.data.relativePath;return A?qe(A,M):[]}),d=k(()=>t.value.sidebar!==!1&&r.value.length>0&&t.value.layout!=="home"),p=k(()=>_?t.value.aside==null?e.value.aside==="left":t.value.aside==="left":!1),_=k(()=>t.value.layout==="home"?!1:t.value.aside!=null?!!t.value.aside:e.value.aside!==!1),y=k(()=>d.value&&s.value),L=k(()=>d.value?Gt(r.value):[]);function N(){o.value=!0}function I(){o.value=!1}function w(){o.value?I():N()}return{isOpen:o,sidebar:r,sidebarGroups:L,hasSidebar:d,hasAside:_,leftAside:p,isSidebarEnabled:y,open:N,close:I,toggle:w}}function Ut(n,e){let t;J(()=>{t=n.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",s)}),le(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function jt(n){const{page:e}=P(),t=V(!1),s=k(()=>n.value.collapsed!=null),o=k(()=>!!n.value.link),r=k(()=>W(e.value.relativePath,n.value.link)),d=k(()=>r.value?!0:n.value.items?pe(e.value.relativePath,n.value.items):!1),p=k(()=>!!(n.value.items&&n.value.items.length));J(()=>{t.value=!!(s.value&&n.value.collapsed)}),J(()=>{(r.value||d.value)&&(t.value=!1)});function _(){s.value&&(t.value=!t.value)}return{collapsed:t,collapsible:s,isLink:o,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}}function qt(){const{hasSidebar:n}=O(),e=ve("(min-width: 960px)"),t=ve("(min-width: 1280px)");return{isAsideEnabled:k(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const Kt=71;function be(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function ke(n){const e=[...document.querySelectorAll(".VPDoc h2,h3,h4,h5,h6")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{title:Wt(t),link:"#"+t.id,level:s}});return Yt(e,n)}function Wt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Yt(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(d=>d.level>=s&&d.level<=o);const r=[];e:for(let d=0;d=0;_--){const y=n[_];if(y.level{requestAnimationFrame(r),window.addEventListener("scroll",s)}),ut(()=>{d(location.hash)}),le(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const p=[].slice.call(n.value.querySelectorAll(".outline-link")),_=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(w=>p.some(A=>A.hash===w.hash&&w.offsetParent!==null)),y=window.scrollY,L=window.innerHeight,N=document.body.offsetHeight,I=Math.abs(y+L-N)<1;if(_.length&&I){d(_[_.length-1].hash);return}for(let w=0;w<_.length;w++){const A=_[w],M=_[w+1],[$,T]=Qt(w,A,M);if($){d(T);return}}}function d(p){o&&o.classList.remove("active"),p!==null&&(o=n.value.querySelector(`a[href="${decodeURIComponent(p)}"]`));const _=o;_?(_.classList.add("active"),e.value.style.top=_.offsetTop+33+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function xe(n){return n.parentElement.offsetTop-Kt}function Qt(n,e,t){const s=window.scrollY;return n===0&&s===0?[!0,null]:s{const o=U("VPDocOutlineItem",!0);return a(),l("ul",{class:B(t.root?"root":"nested")},[(a(!0),l(C,null,H(t.headers,({children:r,link:d,title:p})=>(a(),l("li",null,[u("a",{class:"outline-link",href:d,onClick:e,title:p},S(p),9,Jt),r!=null&&r.length?(a(),b(o,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}});const $e=m(Zt,[["__scopeId","data-v-89c8d7c6"]]),en=n=>(D("data-v-c834746b"),n=n(),z(),n),tn={class:"content"},nn={class:"outline-title"},sn={"aria-labelledby":"doc-outline-aria-label"},on=en(()=>u("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),an=g({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=P(),s=me([]);Z(()=>{s.value=ke(e.value.outline??t.value.outline)});const o=V(),r=V();return Xt(o,r),(d,p)=>(a(),l("div",{class:B(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[u("div",tn,[u("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),u("div",nn,S(i(be)(i(t))),1),u("nav",sn,[on,h($e,{headers:s.value,root:!0},null,8,["headers"])])])],2))}});const rn=m(an,[["__scopeId","data-v-c834746b"]]),ln={class:"VPDocAsideCarbonAds"},cn=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),l("div",ln,[h(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),un=n=>(D("data-v-cb998dce"),n=n(),z(),n),dn={class:"VPDocAside"},_n=un(()=>u("div",{class:"spacer"},null,-1)),vn=g({__name:"VPDocAside",setup(n){const{theme:e}=P();return(t,s)=>(a(),l("div",dn,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),h(rn),c(t.$slots,"aside-outline-after",{},void 0,!0),_n,c(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),b(cn,{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)]))}});const pn=m(vn,[["__scopeId","data-v-cb998dce"]]);function hn(){const{theme:n,page:e}=P();return k(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function fn(){const{page:n,theme:e,frontmatter:t}=P();return k(()=>{var _,y,L,N,I,w;const s=qe(e.value.sidebar,n.value.relativePath),o=Rt(s),r=o.findIndex(A=>W(n.value.relativePath,A.link)),d=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((y=e.value.docFooter)==null?void 0:y.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((L=o[r-1])==null?void 0:L.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((N=o[r-1])==null?void 0:N.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)??((I=o[r+1])==null?void 0:I.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=o[r+1])==null?void 0:w.link)}}})}const mn={},gn={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},yn=u("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),bn=u("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),kn=[yn,bn];function $n(n,e){return a(),l("svg",gn,kn)}const Pn=m(mn,[["render",$n]]),G=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=k(()=>e.tag??e.href?"a":"span"),s=k(()=>e.href&&ze.test(e.href));return(o,r)=>(a(),b(j(t.value),{class:B(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?i(ee)(o.href):void 0,target:o.target||(s.value?"_blank":void 0),rel:o.rel||(s.value?"noreferrer":void 0)},{default:v(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Vn={class:"VPLastUpdated"},wn=["datetime"],Sn=g({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t}=P(),s=k(()=>new Date(t.value.lastUpdated)),o=k(()=>s.value.toISOString()),r=V("");return F(()=>{J(()=>{var d;r.value=new Intl.DateTimeFormat(void 0,((d=e.value.lastUpdated)==null?void 0:d.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(d,p)=>{var _;return a(),l("p",Vn,[x(S(((_=i(e).lastUpdated)==null?void 0:_.text)||i(e).lastUpdatedText||"Last updated")+": ",1),u("time",{datetime:o.value},S(r.value),9,wn)])}}});const Ln=m(Sn,[["__scopeId","data-v-b89b6307"]]),Mn={key:0,class:"VPDocFooter"},Cn={key:0,class:"edit-info"},In={key:0,class:"edit-link"},Tn={key:1,class:"last-updated"},Bn={key:1,class:"prev-next"},Nn={class:"pager"},An=["href"],xn=["innerHTML"],Hn=["innerHTML"],En={class:"pager"},Dn=["href"],zn=["innerHTML"],Fn=["innerHTML"],On=g({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=P(),o=hn(),r=fn(),d=k(()=>e.value.editLink&&s.value.editLink!==!1),p=k(()=>t.value.lastUpdated&&s.value.lastUpdated!==!1),_=k(()=>d.value||p.value||r.value.prev||r.value.next);return(y,L)=>{var N,I,w,A,M,$;return _.value?(a(),l("footer",Mn,[c(y.$slots,"doc-footer-before",{},void 0,!0),d.value||p.value?(a(),l("div",Cn,[d.value?(a(),l("div",In,[h(G,{class:"edit-link-button",href:i(o).url,"no-icon":!0},{default:v(()=>[h(Pn,{class:"edit-link-icon","aria-label":"edit icon"}),x(" "+S(i(o).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(a(),l("div",Tn,[h(Ln)])):f("",!0)])):f("",!0),(N=i(r).prev)!=null&&N.link||(I=i(r).next)!=null&&I.link?(a(),l("nav",Bn,[u("div",Nn,[(w=i(r).prev)!=null&&w.link?(a(),l("a",{key:0,class:"pager-link prev",href:i(ee)(i(r).prev.link)},[u("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.prev)||"Previous page"},null,8,xn),u("span",{class:"title",innerHTML:i(r).prev.text},null,8,Hn)],8,An)):f("",!0)]),u("div",En,[(M=i(r).next)!=null&&M.link?(a(),l("a",{key:0,class:"pager-link next",href:i(ee)(i(r).next.link)},[u("span",{class:"desc",innerHTML:(($=i(e).docFooter)==null?void 0:$.next)||"Next page"},null,8,zn),u("span",{class:"title",innerHTML:i(r).next.text},null,8,Fn)],8,Dn)):f("",!0)])])):f("",!0)])):f("",!0)}}});const Gn=m(On,[["__scopeId","data-v-5774f702"]]),Rn={},Un={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},jn=u("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),qn=[jn];function Kn(n,e){return a(),l("svg",Un,qn)}const Pe=m(Rn,[["render",Kn]]),Wn={key:0,class:"VPDocOutlineDropdown"},Yn={key:0,class:"items"},Xn=g({__name:"VPDocOutlineDropdown",setup(n){const{frontmatter:e,theme:t}=P(),s=V(!1);Z(()=>{s.value=!1});const o=me([]);return Z(()=>{o.value=ke(e.value.outline??t.value.outline)}),(r,d)=>o.value.length>0?(a(),l("div",Wn,[u("button",{onClick:d[0]||(d[0]=p=>s.value=!s.value),class:B({open:s.value})},[x(S(i(be)(i(t)))+" ",1),h(Pe,{class:"icon"})],2),s.value?(a(),l("div",Yn,[h($e,{headers:o.value},null,8,["headers"])])):f("",!0)])):f("",!0)}});const Qn=m(Xn,[["__scopeId","data-v-2d98506c"]]),Jn=n=>(D("data-v-a3c25e27"),n=n(),z(),n),Zn={class:"container"},es=Jn(()=>u("div",{class:"aside-curtain"},null,-1)),ts={class:"aside-container"},ns={class:"aside-content"},ss={class:"content"},os={class:"content-container"},as={class:"main"},rs=g({__name:"VPDoc",setup(n){const{theme:e}=P(),t=te(),{hasSidebar:s,hasAside:o,leftAside:r}=O(),d=k(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,_)=>{const y=U("Content");return a(),l("div",{class:B(["VPDoc",{"has-sidebar":i(s),"has-aside":i(o)}])},[c(p.$slots,"doc-top",{},void 0,!0),u("div",Zn,[i(o)?(a(),l("div",{key:0,class:B(["aside",{"left-aside":i(r)}])},[es,u("div",ts,[u("div",ns,[h(pn,null,{"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})])])],2)):f("",!0),u("div",ss,[u("div",os,[c(p.$slots,"doc-before",{},void 0,!0),h(Qn),u("main",as,[h(y,{class:B(["vp-doc",[d.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),h(Gn,null,{"doc-footer-before":v(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(p.$slots,"doc-after",{},void 0,!0)])])]),c(p.$slots,"doc-bottom",{},void 0,!0)],2)}}});const is=m(rs,[["__scopeId","data-v-a3c25e27"]]),ls=g({__name:"VPButton",props:{tag:{},size:{},theme:{},text:{},href:{}},setup(n){const e=n,t=k(()=>[e.size??"medium",e.theme??"brand"]),s=k(()=>e.href&&ze.test(e.href)),o=k(()=>e.tag?e.tag:e.href?"a":"button");return(r,d)=>(a(),b(j(o.value),{class:B(["VPButton",t.value]),href:r.href?i(ee)(r.href):void 0,target:s.value?"_blank":void 0,rel:s.value?"noreferrer":void 0},{default:v(()=>[x(S(r.text),1)]),_:1},8,["class","href","target","rel"]))}});const cs=m(ls,[["__scopeId","data-v-fa1633a1"]]),us=["src","alt"],ds={inheritAttrs:!1},_s=g({...ds,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=U("VPImage",!0);return e.image?(a(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",se({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,us)):(a(),l(C,{key:1},[h(s,se({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(s,se({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}});const Ve=m(_s,[["__scopeId","data-v-dc109a54"]]),vs=n=>(D("data-v-5a3e9999"),n=n(),z(),n),ps={class:"container"},hs={class:"main"},fs={key:0,class:"name"},ms=["innerHTML"],gs=["innerHTML"],ys=["innerHTML"],bs={key:0,class:"actions"},ks={key:0,class:"image"},$s={class:"image-container"},Ps=vs(()=>u("div",{class:"image-bg"},null,-1)),Vs=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=ge("hero-image-slot-exists");return(t,s)=>(a(),l("div",{class:B(["VPHero",{"has-image":t.image||i(e)}])},[u("div",ps,[u("div",hs,[c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",fs,[u("span",{innerHTML:t.name,class:"clip"},null,8,ms)])):f("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,gs)):f("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,ys)):f("",!0)],!0),t.actions?(a(),l("div",bs,[(a(!0),l(C,null,H(t.actions,o=>(a(),l("div",{key:o.link,class:"action"},[h(cs,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link},null,8,["theme","text","href"])]))),128))])):f("",!0)]),t.image||i(e)?(a(),l("div",ks,[u("div",$s,[Ps,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),b(Ve,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}});const ws=m(Vs,[["__scopeId","data-v-5a3e9999"]]),Ss=g({__name:"VPHomeHero",setup(n){const{frontmatter:e}=P();return(t,s)=>i(e).hero?(a(),b(ws,{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":v(()=>[c(t.$slots,"home-hero-info")]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ls={},Ms={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Cs=u("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),Is=[Cs];function Ts(n,e){return a(),l("svg",Ms,Is)}const Bs=m(Ls,[["render",Ts]]),Ns={class:"box"},As=["innerHTML"],xs=["innerHTML"],Hs=["innerHTML"],Es={key:3,class:"link-text"},Ds={class:"link-text-value"},zs=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{}},setup(n){return(e,t)=>(a(),b(G,{class:"VPFeature",href:e.link,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[u("article",Ns,[typeof e.icon=="object"?(a(),b(Ve,{key:0,image:e.icon,alt:e.icon.alt,height:e.icon.height,width:e.icon.width},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:1,class:"icon",innerHTML:e.icon},null,8,As)):f("",!0),u("h2",{class:"title",innerHTML:e.title},null,8,xs),e.details?(a(),l("p",{key:2,class:"details",innerHTML:e.details},null,8,Hs)):f("",!0),e.linkText?(a(),l("div",Es,[u("p",Ds,[x(S(e.linkText)+" ",1),h(Bs,{class:"link-text-icon"})])])):f("",!0)])]),_:1},8,["href","tag"]))}});const Fs=m(zs,[["__scopeId","data-v-37d05ba9"]]),Os={key:0,class:"VPFeatures"},Gs={class:"container"},Rs={class:"items"},Us=g({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=k(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),l("div",Os,[u("div",Gs,[u("div",Rs,[(a(!0),l(C,null,H(s.features,r=>(a(),l("div",{key:r.title,class:B(["item",[t.value]])},[h(Fs,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText},null,8,["icon","title","details","link","link-text"])],2))),128))])])])):f("",!0)}});const js=m(Us,[["__scopeId","data-v-fcd3089b"]]),qs=g({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=P();return(t,s)=>i(e).features?(a(),b(js,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):f("",!0)}}),Ks={class:"VPHome"},Ws=g({__name:"VPHome",setup(n){return(e,t)=>{const s=U("Content");return a(),l("div",Ks,[c(e.$slots,"home-hero-before",{},void 0,!0),h(Ss,null,{"home-hero-info":v(()=>[c(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(e.$slots,"home-hero-after",{},void 0,!0),c(e.$slots,"home-features-before",{},void 0,!0),h(qs),c(e.$slots,"home-features-after",{},void 0,!0),h(s)])}}});const Ys=m(Ws,[["__scopeId","data-v-20eabd3a"]]),Xs={},Qs={class:"VPPage"};function Js(n,e){const t=U("Content");return a(),l("div",Qs,[c(n.$slots,"page-top"),h(t),c(n.$slots,"page-bottom")])}const Zs=m(Xs,[["render",Js]]),eo=g({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=P(),{hasSidebar:s}=O();return(o,r)=>(a(),l("div",{class:B(["VPContent",{"has-sidebar":i(s),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[h(xt)],!0):i(t).layout==="page"?(a(),b(Zs,{key:1},{"page-top":v(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),b(Ys,{key:2},{"home-hero-before":v(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):(a(),b(is,{key:3},{"doc-top":v(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const to=m(eo,[["__scopeId","data-v-f0629f57"]]),no={class:"container"},so=["innerHTML"],oo=["innerHTML"],ao=g({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=O();return(o,r)=>i(e).footer&&i(t).footer!==!1?(a(),l("footer",{key:0,class:B(["VPFooter",{"has-sidebar":i(s)}])},[u("div",no,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,so)):f("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,oo)):f("",!0)])],2)):f("",!0)}});const ro=m(ao,[["__scopeId","data-v-e4279f1c"]]),io=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=P(),s=V(!1),o=V(0),r=V();Z(()=>{s.value=!1});function d(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function p(y){y.target.classList.contains("outline-link")&&(r.value&&(r.value.style.transition="none"),dt(()=>{s.value=!1}))}function _(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,L)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:Fe({"--vp-vh":o.value+"px"})},[y.headers.length>0?(a(),l("button",{key:0,onClick:d,class:B({open:s.value})},[x(S(i(be)(i(t)))+" ",1),h(Pe,{class:"icon"})],2)):(a(),l("button",{key:1,onClick:_},S(i(t).returnToTopLabel||"Return to top"),1)),h(he,{name:"flyout"},{default:v(()=>[s.value?(a(),l("div",{key:0,ref_key:"items",ref:r,class:"items",onClick:p},[u("a",{class:"top-link",href:"#",onClick:_},S(i(t).returnToTopLabel||"Return to top"),1),h($e,{headers:y.headers},null,8,["headers"])],512)):f("",!0)]),_:1})],4))}});const lo=m(io,[["__scopeId","data-v-bd10e8af"]]),co={},uo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},_o=u("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),vo=u("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),po=u("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),ho=u("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),fo=[_o,vo,po,ho];function mo(n,e){return a(),l("svg",uo,fo)}const go=m(co,[["render",mo]]),yo=["aria-expanded"],bo={class:"menu-text"},ko=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=O(),{y:o}=je(),r=me([]),d=V(0);F(()=>{d.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Z(()=>{r.value=ke(t.value.outline??e.value.outline)});const p=k(()=>r.value.length===0&&!s.value),_=k(()=>({VPLocalNav:!0,fixed:p.value,"reached-top":o.value>=d.value}));return(y,L)=>i(t).layout!=="home"&&(!p.value||i(o)>=d.value)?(a(),l("div",{key:0,class:B(_.value)},[i(s)?(a(),l("button",{key:0,class:"menu","aria-expanded":y.open,"aria-controls":"VPSidebarNav",onClick:L[0]||(L[0]=N=>y.$emit("open-menu"))},[h(go,{class:"menu-icon"}),u("span",bo,S(i(e).sidebarMenuLabel||"Menu"),1)],8,yo)):f("",!0),h(lo,{headers:r.value,navHeight:d.value},null,8,["headers","navHeight"])],2)):f("",!0)}});const $o=m(ko,[["__scopeId","data-v-693d654a"]]);function Po(){const n=V(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const r=te();return K(()=>r.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Vo={},wo={class:"VPSwitch",type:"button",role:"switch"},So={class:"check"},Lo={key:0,class:"icon"};function Mo(n,e){return a(),l("button",wo,[u("span",So,[n.$slots.default?(a(),l("span",Lo,[c(n.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Co=m(Vo,[["render",Mo],["__scopeId","data-v-92d8f6fb"]]),Io={},To={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Bo=_t('',9),No=[Bo];function Ao(n,e){return a(),l("svg",To,No)}const xo=m(Io,[["render",Ao]]),Ho={},Eo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Do=u("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),zo=[Do];function Fo(n,e){return a(),l("svg",Eo,zo)}const Oo=m(Ho,[["render",Fo]]),Go=g({__name:"VPSwitchAppearance",setup(n){const{site:e,isDark:t}=P(),s=V(!1),o=Oe?r():()=>{};F(()=>{s.value=document.documentElement.classList.contains("dark")});function r(){const d=window.matchMedia("(prefers-color-scheme: dark)"),p=document.documentElement.classList;let _=localStorage.getItem(Ae),y=e.value.appearance==="dark"&&_==null||(_==="auto"||_==null?d.matches:_==="dark");d.onchange=I=>{_==="auto"&&N(y=I.matches)};function L(){N(y=!y),_=y?d.matches?"auto":"dark":d.matches?"light":"auto",localStorage.setItem(Ae,_)}function N(I){const w=document.createElement("style");w.type="text/css",w.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { + -webkit-transition: none !important; + -moz-transition: none !important; + -o-transition: none !important; + -ms-transition: none !important; + transition: none !important; +}`)),document.head.appendChild(w),s.value=I,p[I?"add":"remove"]("dark"),window.getComputedStyle(w).opacity,document.head.removeChild(w)}return L}return K(s,d=>{t.value=d}),(d,p)=>(a(),b(Co,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":s.value,onClick:i(o)},{default:v(()=>[h(xo,{class:"sun"}),h(Oo,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const we=m(Go,[["__scopeId","data-v-a99ed743"]]),Ro={key:0,class:"VPNavBarAppearance"},Uo=g({__name:"VPNavBarAppearance",setup(n){const{site:e}=P();return(t,s)=>i(e).appearance?(a(),l("div",Ro,[h(we)])):f("",!0)}});const jo=m(Uo,[["__scopeId","data-v-5e9f0637"]]),Se=V();let Ke=!1,de=0;function qo(n){const e=V(!1);if(Oe){!Ke&&Ko(),de++;const t=K(Se,s=>{var o,r,d;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(r=n.onFocus)==null||r.call(n)):(e.value=!1,(d=n.onBlur)==null||d.call(n))});le(()=>{t(),de--,de||Wo()})}return De(e)}function Ko(){document.addEventListener("focusin",We),Ke=!0,Se.value=document.activeElement}function Wo(){document.removeEventListener("focusin",We)}function We(){Se.value=document.activeElement}const Yo={},Xo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Qo=u("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Jo=[Qo];function Zo(n,e){return a(),l("svg",Xo,Jo)}const Ye=m(Yo,[["render",Zo]]),ea={},ta={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},na=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),sa=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),oa=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),aa=[na,sa,oa];function ra(n,e){return a(),l("svg",ta,aa)}const ia=m(ea,[["render",ra]]),la={class:"VPMenuLink"},ca=g({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=P();return(t,s)=>(a(),l("div",la,[h(G,{class:B({active:i(W)(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(()=>[x(S(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ue=m(ca,[["__scopeId","data-v-2a4d50e5"]]),ua={class:"VPMenuGroup"},da={key:0,class:"title"},_a=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),l("div",ua,[e.text?(a(),l("p",da,S(e.text),1)):f("",!0),(a(!0),l(C,null,H(e.items,s=>(a(),l(C,null,["link"in s?(a(),b(ue,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}});const va=m(_a,[["__scopeId","data-v-a6b0397c"]]),pa={class:"VPMenu"},ha={key:0,class:"items"},fa=g({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),l("div",pa,[e.items?(a(),l("div",ha,[(a(!0),l(C,null,H(e.items,s=>(a(),l(C,{key:s.text},["link"in s?(a(),b(ue,{key:0,item:s},null,8,["item"])):(a(),b(va,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(e.$slots,"default",{},void 0,!0)]))}});const ma=m(fa,[["__scopeId","data-v-e42ed9b3"]]),ga=["aria-expanded","aria-label"],ya={key:0,class:"text"},ba={class:"menu"},ka=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=V(!1),t=V();qo({el:t,onBlur:s});function s(){e.value=!1}return(o,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[o.button||o.icon?(a(),l("span",ya,[o.icon?(a(),b(j(o.icon),{key:0,class:"option-icon"})):f("",!0),x(" "+S(o.button)+" ",1),h(Ye,{class:"text-icon"})])):(a(),b(ia,{key:1,class:"icon"}))],8,ga),u("div",ba,[h(ma,{items:o.items},{default:v(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const Le=m(ka,[["__scopeId","data-v-6afe904b"]]),$a={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},Pa=["href","aria-label","innerHTML"],Va=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=k(()=>typeof e.icon=="object"?e.icon.svg:$a[e.icon]);return(s,o)=>(a(),l("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Pa))}});const wa=m(Va,[["__scopeId","data-v-16cf740a"]]),Sa={class:"VPSocialLinks"},La=g({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),l("div",Sa,[(a(!0),l(C,null,H(e.links,({link:s,icon:o,ariaLabel:r})=>(a(),b(wa,{key:s,icon:o,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}});const Me=m(La,[["__scopeId","data-v-e71e869c"]]),Ma={key:0,class:"group translations"},Ca={class:"trans-title"},Ia={key:1,class:"group"},Ta={class:"item appearance"},Ba={class:"label"},Na={class:"appearance-action"},Aa={key:2,class:"group"},xa={class:"item social-links"},Ha=g({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=P(),{localeLinks:s,currentLang:o}=ne({correspondingLink:!0}),r=k(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(d,p)=>r.value?(a(),b(Le,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(s).length&&i(o).label?(a(),l("div",Ma,[u("p",Ca,S(i(o).label),1),(a(!0),l(C,null,H(i(s),_=>(a(),b(ue,{key:_.link,item:_},null,8,["item"]))),128))])):f("",!0),i(e).appearance?(a(),l("div",Ia,[u("div",Ta,[u("p",Ba,S(i(t).darkModeSwitchLabel||"Appearance"),1),u("div",Na,[h(we)])])])):f("",!0),i(t).socialLinks?(a(),l("div",Aa,[u("div",xa,[h(Me,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}});const Ea=m(Ha,[["__scopeId","data-v-c8c2ae4b"]]),Da=n=>(D("data-v-6bee1efd"),n=n(),z(),n),za=["aria-expanded"],Fa=Da(()=>u("span",{class:"container"},[u("span",{class:"top"}),u("span",{class:"middle"}),u("span",{class:"bottom"})],-1)),Oa=[Fa],Ga=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),l("button",{type:"button",class:B(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},Oa,10,za))}});const Ra=m(Ga,[["__scopeId","data-v-6bee1efd"]]),Ua=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=P();return(t,s)=>(a(),b(G,{class:B({VPNavBarMenuLink:!0,active:i(W)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[x(S(t.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const ja=m(Ua,[["__scopeId","data-v-7f10a92a"]]),qa=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const{page:e}=P();return(t,s)=>(a(),b(Le,{class:B({VPNavBarMenuGroup:!0,active:i(W)(i(e).relativePath,t.item.activeMatch,!!t.item.activeMatch)}),button:t.item.text,items:t.item.items},null,8,["class","button","items"]))}}),Ka=n=>(D("data-v-f732b5d0"),n=n(),z(),n),Wa={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ya=Ka(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Xa=g({__name:"VPNavBarMenu",setup(n){const{theme:e}=P();return(t,s)=>i(e).nav?(a(),l("nav",Wa,[Ya,(a(!0),l(C,null,H(i(e).nav,o=>(a(),l(C,{key:o.text},["link"in o?(a(),b(ja,{key:0,item:o},null,8,["item"])):(a(),b(qa,{key:1,item:o},null,8,["item"]))],64))),128))])):f("",!0)}});const Qa=m(Xa,[["__scopeId","data-v-f732b5d0"]]);const Ja={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},Za={class:"DocSearch-Button-Container"},er=u("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[u("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),tr={class:"DocSearch-Button-Placeholder"},nr=u("span",{class:"DocSearch-Button-Keys"},[u("kbd",{class:"DocSearch-Button-Key"}),u("kbd",{class:"DocSearch-Button-Key"},"K")],-1),He=g({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(n){return(e,t)=>(a(),l("button",Ja,[u("span",Za,[er,u("span",tr,S(e.placeholder),1)]),nr]))}});const sr={id:"local-search"},or={key:1,id:"docsearch"},ar=g({__name:"VPNavBarSearch",setup(n){const e=()=>null,t=vt(()=>pt(()=>import("./VPAlgoliaSearchBox.456e474e.js"),["assets/chunks/VPAlgoliaSearchBox.456e474e.js","assets/chunks/framework.1eef7d9b.js"])),{theme:s,localeIndex:o}=P(),r=V(!1),d=V(!1),p=k(()=>{var $,T,E,Y,Te,Be,Ne;const M=(($=s.value.search)==null?void 0:$.options)??s.value.algolia;return((Te=(Y=(E=(T=M==null?void 0:M.locales)==null?void 0:T[o.value])==null?void 0:E.translations)==null?void 0:Y.button)==null?void 0:Te.buttonText)||((Ne=(Be=M==null?void 0:M.translations)==null?void 0:Be.button)==null?void 0:Ne.buttonText)||"Search"}),_=()=>{const M="VPAlgoliaPreconnect";(window.requestIdleCallback||setTimeout)(()=>{var E;const T=document.createElement("link");T.id=M,T.rel="preconnect",T.href=`https://${(((E=s.value.search)==null?void 0:E.options)??s.value.algolia).appId}-dsn.algolia.net`,T.crossOrigin="",document.head.appendChild(T)})};F(()=>{_();const M=T=>{(T.key.toLowerCase()==="k"&&(T.metaKey||T.ctrlKey)||!N(T)&&T.key==="/")&&(T.preventDefault(),y(),$())},$=()=>{window.removeEventListener("keydown",M)};window.addEventListener("keydown",M),le($)});function y(){r.value||(r.value=!0,setTimeout(L,16))}function L(){const M=new Event("keydown");M.key="k",M.metaKey=!0,window.dispatchEvent(M),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||L()},16)}function N(M){const $=M.target,T=$.tagName;return $.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const I=V(!1),w=V("'Meta'");F(()=>{w.value=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"'⌘'":"'Ctrl'"});const A="algolia";return(M,$)=>{var T;return a(),l("div",{class:"VPNavBarSearch",style:Fe({"--vp-meta-key":w.value})},[i(A)==="local"?(a(),l(C,{key:0},[I.value?(a(),b(i(e),{key:0,placeholder:p.value,onClose:$[0]||($[0]=E=>I.value=!1)},null,8,["placeholder"])):f("",!0),u("div",sr,[h(He,{placeholder:p.value,onClick:$[1]||($[1]=E=>I.value=!0)},null,8,["placeholder"])])],64)):i(A)==="algolia"?(a(),l(C,{key:1},[r.value?(a(),b(i(t),{key:0,algolia:((T=i(s).search)==null?void 0:T.options)??i(s).algolia,onVnodeBeforeMount:$[2]||($[2]=E=>d.value=!0)},null,8,["algolia"])):f("",!0),d.value?f("",!0):(a(),l("div",or,[h(He,{placeholder:p.value,onClick:y},null,8,["placeholder"])]))],64)):f("",!0)],4)}}});const rr=g({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=P();return(t,s)=>i(e).socialLinks?(a(),b(Me,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}});const ir=m(rr,[["__scopeId","data-v-ef6192dc"]]),lr=["href"],cr=g({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=P(),{hasSidebar:s}=O(),{currentLang:o}=ne();return(r,d)=>(a(),l("div",{class:B(["VPNavBarTitle",{"has-sidebar":i(s)}])},[u("a",{class:"title",href:i(ee)(i(o).link)},[c(r.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),b(Ve,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):f("",!0),i(t).siteTitle?(a(),l(C,{key:1},[x(S(i(t).siteTitle),1)],64)):i(t).siteTitle===void 0?(a(),l(C,{key:2},[x(S(i(e).title),1)],64)):f("",!0),c(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,lr)],2))}});const ur=m(cr,[["__scopeId","data-v-6d57964e"]]),dr={},_r={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},vr=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),pr=u("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),hr=[vr,pr];function fr(n,e){return a(),l("svg",_r,hr)}const Xe=m(dr,[["render",fr]]),mr={class:"items"},gr={class:"title"},yr=g({__name:"VPNavBarTranslations",setup(n){const{theme:e}=P(),{localeLinks:t,currentLang:s}=ne({correspondingLink:!0});return(o,r)=>i(t).length&&i(s).label?(a(),b(Le,{key:0,class:"VPNavBarTranslations",icon:Xe,label:i(e).langMenuLabel||"Change language"},{default:v(()=>[u("div",mr,[u("p",gr,S(i(s).label),1),(a(!0),l(C,null,H(i(t),d=>(a(),b(ue,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}});const br=m(yr,[["__scopeId","data-v-ff4524ae"]]),kr=n=>(D("data-v-4077a65e"),n=n(),z(),n),$r={class:"container"},Pr={class:"title"},Vr={class:"content"},wr=kr(()=>u("div",{class:"curtain"},null,-1)),Sr={class:"content-body"},Lr=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const{y:e}=je(),{hasSidebar:t}=O(),s=k(()=>({"has-sidebar":t.value,fill:e.value>0}));return(o,r)=>(a(),l("div",{class:B(["VPNavBar",s.value])},[u("div",$r,[u("div",Pr,[h(ur,null,{"nav-bar-title-before":v(()=>[c(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(o.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),u("div",Vr,[wr,u("div",Sr,[c(o.$slots,"nav-bar-content-before",{},void 0,!0),h(ar,{class:"search"}),h(Qa,{class:"menu"}),h(br,{class:"translations"}),h(jo,{class:"appearance"}),h(ir,{class:"social-links"}),h(Ea,{class:"extra"}),c(o.$slots,"nav-bar-content-after",{},void 0,!0),h(Ra,{class:"hamburger",active:o.isScreenOpen,onClick:r[0]||(r[0]=d=>o.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const Mr=m(Lr,[["__scopeId","data-v-4077a65e"]]);function Cr(n){if(Array.isArray(n)){for(var e=0,t=Array(n.length);e1),q=[],re=!1,Ie=-1,X=void 0,R=void 0,Q=void 0,Qe=function(e){return q.some(function(t){return!!(t.options.allowTouchMove&&t.options.allowTouchMove(e))})},ie=function(e){var t=e||window.event;return Qe(t.target)||t.touches.length>1?!0:(t.preventDefault&&t.preventDefault(),!1)},Ir=function(e){if(Q===void 0){var t=!!e&&e.reserveScrollBarGap===!0,s=window.innerWidth-document.documentElement.clientWidth;if(t&&s>0){var o=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);Q=document.body.style.paddingRight,document.body.style.paddingRight=o+s+"px"}}X===void 0&&(X=document.body.style.overflow,document.body.style.overflow="hidden")},Tr=function(){Q!==void 0&&(document.body.style.paddingRight=Q,Q=void 0),X!==void 0&&(document.body.style.overflow=X,X=void 0)},Br=function(){return window.requestAnimationFrame(function(){if(R===void 0){R={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e=window,t=e.scrollY,s=e.scrollX,o=e.innerHeight;document.body.style.position="fixed",document.body.style.top=-t,document.body.style.left=-s,setTimeout(function(){return window.requestAnimationFrame(function(){var r=o-window.innerHeight;r&&t>=o&&(document.body.style.top=-(t+r))})},300)}})},Nr=function(){if(R!==void 0){var e=-parseInt(document.body.style.top,10),t=-parseInt(document.body.style.left,10);document.body.style.position=R.position,document.body.style.top=R.top,document.body.style.left=R.left,window.scrollTo(t,e),R=void 0}},Ar=function(e){return e?e.scrollHeight-e.scrollTop<=e.clientHeight:!1},xr=function(e,t){var s=e.targetTouches[0].clientY-Ie;return Qe(e.target)?!1:t&&t.scrollTop===0&&s>0||Ar(t)&&s<0?ie(e):(e.stopPropagation(),!0)},Je=function(e,t){if(!e){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!q.some(function(o){return o.targetElement===e})){var s={targetElement:e,options:t||{}};q=[].concat(Cr(q),[s]),ae?Br():Ir(t),ae&&(e.ontouchstart=function(o){o.targetTouches.length===1&&(Ie=o.targetTouches[0].clientY)},e.ontouchmove=function(o){o.targetTouches.length===1&&xr(o,e)},re||(document.addEventListener("touchmove",ie,Ce?{passive:!1}:void 0),re=!0))}},Ze=function(){ae&&(q.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),re&&(document.removeEventListener("touchmove",ie,Ce?{passive:!1}:void 0),re=!1),Ie=-1),ae?Nr():Tr(),q=[]};const Hr=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=ge("close-screen");return(t,s)=>(a(),b(G,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[x(S(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Er=m(Hr,[["__scopeId","data-v-08b49756"]]),Dr={},zr={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Fr=u("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),Or=[Fr];function Gr(n,e){return a(),l("svg",zr,Or)}const Rr=m(Dr,[["render",Gr]]),Ur=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=ge("close-screen");return(t,s)=>(a(),b(G,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[x(S(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const et=m(Ur,[["__scopeId","data-v-97083fb3"]]),jr={class:"VPNavScreenMenuGroupSection"},qr={key:0,class:"title"},Kr=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),l("div",jr,[e.text?(a(),l("p",qr,S(e.text),1)):f("",!0),(a(!0),l(C,null,H(e.items,s=>(a(),b(et,{key:s.text,item:s},null,8,["item"]))),128))]))}});const Wr=m(Kr,[["__scopeId","data-v-f60dbfa7"]]),Yr=["aria-controls","aria-expanded"],Xr={class:"button-text"},Qr=["id"],Jr={key:1,class:"group"},Zr=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=V(!1),s=k(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(r,d)=>(a(),l("div",{class:B(["VPNavScreenMenuGroup",{open:t.value}])},[u("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[u("span",Xr,S(r.text),1),h(Rr,{class:"button-icon"})],8,Yr),u("div",{id:s.value,class:"items"},[(a(!0),l(C,null,H(r.items,p=>(a(),l(C,{key:p.text},["link"in p?(a(),l("div",{key:p.text,class:"item"},[h(et,{item:p},null,8,["item"])])):(a(),l("div",Jr,[h(Wr,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,Qr)],2))}});const ei=m(Zr,[["__scopeId","data-v-10e00a88"]]),ti={key:0,class:"VPNavScreenMenu"},ni=g({__name:"VPNavScreenMenu",setup(n){const{theme:e}=P();return(t,s)=>i(e).nav?(a(),l("nav",ti,[(a(!0),l(C,null,H(i(e).nav,o=>(a(),l(C,{key:o.text},["link"in o?(a(),b(Er,{key:0,item:o},null,8,["item"])):(a(),b(ei,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),si={key:0,class:"VPNavScreenAppearance"},oi={class:"text"},ai=g({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=P();return(s,o)=>i(e).appearance?(a(),l("div",si,[u("p",oi,S(i(t).darkModeSwitchLabel||"Appearance"),1),h(we)])):f("",!0)}});const ri=m(ai,[["__scopeId","data-v-0dc5cf49"]]),ii={class:"list"},li=g({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=ne({correspondingLink:!0}),s=V(!1);function o(){s.value=!s.value}return(r,d)=>i(e).length&&i(t).label?(a(),l("div",{key:0,class:B(["VPNavScreenTranslations",{open:s.value}])},[u("button",{class:"title",onClick:o},[h(Xe,{class:"icon lang"}),x(" "+S(i(t).label)+" ",1),h(Ye,{class:"icon chevron"})]),u("ul",ii,[(a(!0),l(C,null,H(i(e),p=>(a(),l("li",{key:p.link,class:"item"},[h(G,{class:"link",href:p.link},{default:v(()=>[x(S(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}});const ci=m(li,[["__scopeId","data-v-41505286"]]),ui=g({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=P();return(t,s)=>i(e).socialLinks?(a(),b(Me,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),di={class:"container"},_i=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=V(null);function t(){Je(e.value,{reserveScrollBarGap:!0})}function s(){Ze()}return(o,r)=>(a(),b(he,{name:"fade",onEnter:t,onAfterLeave:s},{default:v(()=>[o.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[u("div",di,[c(o.$slots,"nav-screen-content-before",{},void 0,!0),h(ni,{class:"menu"}),h(ci,{class:"translations"}),h(ri,{class:"appearance"}),h(ui,{class:"social-links"}),c(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}});const vi=m(_i,[["__scopeId","data-v-dc785598"]]),pi={class:"VPNav"},hi=g({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=Po();return oe("close-screen",t),(o,r)=>(a(),l("header",pi,[h(Mr,{"is-screen-open":i(e),onToggleScreen:i(s)},{"nav-bar-title-before":v(()=>[c(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(o.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(o.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(o.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(vi,{open:i(e)},{"nav-screen-content-before":v(()=>[c(o.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(o.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const fi=m(hi,[["__scopeId","data-v-5bdc5df3"]]),mi=n=>(D("data-v-66c2f55a"),n=n(),z(),n),gi=["role","tabindex"],yi=mi(()=>u("div",{class:"indicator"},null,-1)),bi=["onKeydown"],ki={key:1,class:"items"},$i=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}=jt(k(()=>e.item)),y=k(()=>p.value?"section":"div"),L=k(()=>o.value?"a":"div"),N=k(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),I=k(()=>o.value?void 0:"button"),w=k(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":r.value},{"has-active":d.value}]);function A($){"key"in $&&$.key!=="Enter"||!e.item.link&&_()}function M(){e.item.link&&_()}return($,T)=>{const E=U("VPSidebarItem",!0);return a(),b(j(y.value),{class:B(["VPSidebarItem",w.value])},{default:v(()=>[$.item.text?(a(),l("div",se({key:0,class:"item",role:I.value},ft($.item.items?{click:A,keydown:A}:{},!0),{tabindex:$.item.items&&0}),[yi,$.item.link?(a(),b(G,{key:0,tag:L.value,class:"link",href:$.item.link},{default:v(()=>[(a(),b(j(N.value),{class:"text",innerHTML:$.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(a(),b(j(N.value),{key:1,class:"text",innerHTML:$.item.text},null,8,["innerHTML"])),$.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:ht(M,["enter"]),tabindex:"0"},[h(Pe,{class:"caret-icon"})],40,bi)):f("",!0)],16,gi)):f("",!0),$.item.items&&$.item.items.length?(a(),l("div",ki,[$.depth<5?(a(!0),l(C,{key:0},H($.item.items,Y=>(a(),b(E,{key:Y.text,item:Y,depth:$.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}});const Pi=m($i,[["__scopeId","data-v-66c2f55a"]]),tt=n=>(D("data-v-b04a928c"),n=n(),z(),n),Vi=tt(()=>u("div",{class:"curtain"},null,-1)),wi={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Si=tt(()=>u("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Li=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const e=n,{sidebarGroups:t,hasSidebar:s}=O();let o=V(null);function r(){Je(o.value,{reserveScrollBarGap:!0})}function d(){Ze()}return mt(async()=>{var p;e.open?(r(),(p=o.value)==null||p.focus()):d()}),(p,_)=>i(s)?(a(),l("aside",{key:0,class:B(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:o,onClick:_[0]||(_[0]=gt(()=>{},["stop"]))},[Vi,u("nav",wi,[Si,c(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(C,null,H(i(t),y=>(a(),l("div",{key:y.text,class:"group"},[h(Pi,{item:y,depth:0},null,8,["item"])]))),128)),c(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}});const Mi=m(Li,[["__scopeId","data-v-b04a928c"]]),Ci=g({__name:"VPSkipLink",setup(n){const e=te(),t=V();K(()=>e.path,()=>t.value.focus());function s({target:o}){const r=document.getElementById(decodeURIComponent(o.hash).slice(1));if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(o,r)=>(a(),l(C,null,[u("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}});const Ii=m(Ci,[["__scopeId","data-v-9c8615dd"]]),Ti={key:0,class:"Layout"},Bi=g({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=O(),o=te();K(()=>o.path,s),Ut(e,s),oe("close-sidebar",s),oe("is-sidebar-open",e);const{frontmatter:r}=P(),d=yt(),p=k(()=>!!d["home-hero-image"]);return oe("hero-image-slot-exists",p),(_,y)=>{const L=U("Content");return i(r).layout!==!1?(a(),l("div",Ti,[c(_.$slots,"layout-top",{},void 0,!0),h(Ii),h(Vt,{class:"backdrop",show:i(e),onClick:i(s)},null,8,["show","onClick"]),i(r).navbar!==!1?(a(),b(fi,{key:0},{"nav-bar-title-before":v(()=>[c(_.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(_.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(_.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(_.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[c(_.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(_.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3})):f("",!0),h($o,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),h(Mi,{open:i(e)},{"sidebar-nav-before":v(()=>[c(_.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[c(_.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(to,null,{"page-top":v(()=>[c(_.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(_.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[c(_.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[c(_.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(_.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(_.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(_.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(_.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(_.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[c(_.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(_.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(_.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[c(_.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(_.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[c(_.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(_.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(_.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(_.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(_.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(_.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(ro),c(_.$slots,"layout-bottom",{},void 0,!0)])):(a(),b(L,{key:1}))}}});const Ni=m(Bi,[["__scopeId","data-v-ffdc1df7"]]);const xi={Layout:Ni,enhanceApp:({app:n})=>{n.component("Badge",kt)}};export{xi as t,P as u}; diff --git a/docs/assets/chunks/theme.f05be701.js b/docs/assets/chunks/theme.f05be701.js deleted file mode 100644 index c79d0cf3..00000000 --- a/docs/assets/chunks/theme.f05be701.js +++ /dev/null @@ -1,7 +0,0 @@ -import{d as g,o as a,c as l,r as c,n as B,a as x,t as P,_ as m,u as nt,b as i,e as st,f as ze,g as ot,h as S,i as at,j as rt,w as K,k as J,l as b,m as it,p as O,q as lt,P as ct,s as he,v as W,x as te,y as le,z as u,F as C,A as y,B as v,T as fe,C as f,D as U,E as se,G as h,H as De,I as ut,J as dt,K as q,L as Fe,M as Oe,N as E,O as z,Q as D,R as _t,S as Ae,U as me,V as oe,W as vt,X as Z,Y as pt,Z as ge,$ as ht,a0 as ft,a1 as mt,a2 as gt,a3 as yt}from"./framework.fed62f4c.js";const bt=g({__name:"VPBadge",props:{text:{},type:{}},setup(n){return(e,t)=>(a(),l("span",{class:B(["VPBadge",e.type??"tip"])},[c(e.$slots,"default",{},()=>[x(P(e.text),1)],!0)],2))}});const $t=m(bt,[["__scopeId","data-v-ce917cfb"]]),V=nt;function Ge(n){return at()?(rt(n),!0):!1}function Re(n){return typeof n=="function"?n():i(n)}const kt=typeof window<"u",Ue=()=>{};function Pt(...n){if(n.length!==1)return st(...n);const e=n[0];return typeof e=="function"?ze(ot(()=>({get:e,set:Ue}))):S(e)}function Vt(n){var e;const t=Re(n);return(e=t==null?void 0:t.$el)!=null?e:t}const ye=kt?window:void 0;function wt(...n){let e,t,o,s;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,o,s]=n,e=ye):[e,t,o,s]=n,!e)return Ue;Array.isArray(t)||(t=[t]),Array.isArray(o)||(o=[o]);const r=[],d=()=>{r.forEach(T=>T()),r.length=0},p=(T,N,I,w)=>(T.addEventListener(N,I,w),()=>T.removeEventListener(N,I,w)),_=K(()=>[Vt(e),Re(s)],([T,N])=>{d(),T&&r.push(...t.flatMap(I=>o.map(w=>p(T,I,w,N))))},{immediate:!0,flush:"post"}),$=()=>{_(),d()};return Ge($),$}function St(){const n=S(!1);return it()&&O(()=>{n.value=!0}),n}function Lt(n){const e=St();return b(()=>(e.value,!!n()))}function _e(n,e={}){const{window:t=ye}=e,o=Lt(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const r=S(!1),d=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",p):s.removeListener(p))},p=()=>{o.value&&(d(),s=t.matchMedia(Pt(n).value),r.value=!!(s!=null&&s.matches),s&&("addEventListener"in s?s.addEventListener("change",p):s.addListener(p)))};return J(p),Ge(()=>d()),r}function qe({window:n=ye}={}){if(!n)return{x:S(0),y:S(0)};const e=S(n.scrollX),t=S(n.scrollY);return wt(n,"scroll",()=>{e.value=n.scrollX,t.value=n.scrollY},{capture:!1,passive:!0}),{x:e,y:t}}function Mt(n,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(n,e):(n(),o=!0,setTimeout(()=>{o=!1},e))}}function ve(n){return/^\//.test(n)?n:`/${n}`}function ee(n){if(lt(n))return n.replace(ct,"");const{site:e}=V(),{pathname:t,search:o,hash:s}=new URL(n,"http://example.com"),r=t.endsWith("/")||t.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${o}${s}`);return he(r)}function je(n,e){if(Array.isArray(n))return n;if(n==null)return[];e=ve(e);const t=Object.keys(n).sort((o,s)=>s.split("/").length-o.split("/").length).find(o=>e.startsWith(ve(o)));return t?n[t]:[]}function Ct(n){const e=[];let t=0;for(const o in n){const s=n[o];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function It(n){const e=[];function t(o){for(const s of o)s.text&&s.link&&e.push({text:s.text,link:s.link}),s.items&&t(s.items)}return t(n),e}function pe(n,e){return Array.isArray(e)?e.some(t=>pe(n,t)):W(n,e.link)?!0:e.items?pe(n,e.items):!1}function F(){const n=te(),{theme:e,frontmatter:t}=V(),o=_e("(min-width: 960px)"),s=S(!1),r=b(()=>{const A=e.value.sidebar,L=n.data.relativePath;return A?je(A,L):[]}),d=b(()=>t.value.sidebar!==!1&&r.value.length>0&&t.value.layout!=="home"),p=b(()=>_?t.value.aside==null?e.value.aside==="left":t.value.aside==="left":!1),_=b(()=>t.value.layout==="home"?!1:t.value.aside!=null?!!t.value.aside:e.value.aside!==!1),$=b(()=>d.value&&o.value),T=b(()=>d.value?Ct(r.value):[]);function N(){s.value=!0}function I(){s.value=!1}function w(){s.value?I():N()}return{isOpen:s,sidebar:r,sidebarGroups:T,hasSidebar:d,hasAside:_,leftAside:p,isSidebarEnabled:$,open:N,close:I,toggle:w}}function Bt(n,e){let t;J(()=>{t=n.value?document.activeElement:void 0}),O(()=>{window.addEventListener("keyup",o)}),le(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function Tt(n){const{page:e}=V(),t=S(!1),o=b(()=>n.value.collapsed!=null),s=b(()=>!!n.value.link),r=b(()=>W(e.value.relativePath,n.value.link)),d=b(()=>r.value?!0:n.value.items?pe(e.value.relativePath,n.value.items):!1),p=b(()=>!!(n.value.items&&n.value.items.length));J(()=>{t.value=!!(o.value&&n.value.collapsed)}),J(()=>{(r.value||d.value)&&(t.value=!1)});function _(){o.value&&(t.value=!t.value)}return{collapsed:t,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}}const Nt=g({__name:"VPSkipLink",setup(n){const e=te(),t=S();K(()=>e.path,()=>t.value.focus());function o({target:s}){const r=document.querySelector(decodeURIComponent(s.hash));if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(a(),l(C,null,[u("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}});const At=m(Nt,[["__scopeId","data-v-5fd198a2"]]),xt={key:0,class:"VPBackdrop"},Et=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),y(fe,{name:"fade"},{default:v(()=>[e.show?(a(),l("div",xt)):f("",!0)]),_:1}))}});const Ht=m(Et,[["__scopeId","data-v-54a304ca"]]);function zt(){const n=S(!1);function e(){n.value=!0,window.addEventListener("resize",s)}function t(){n.value=!1,window.removeEventListener("resize",s)}function o(){n.value?t():e()}function s(){window.outerWidth>=768&&t()}const r=te();return K(()=>r.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:o}}function ne({removeCurrent:n=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:o,page:s,theme:r}=V(),d=b(()=>{var _,$;return{label:(_=t.value.locales[o.value])==null?void 0:_.label,link:(($=t.value.locales[o.value])==null?void 0:$.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:b(()=>Object.entries(t.value.locales).flatMap(([_,$])=>n&&d.value.label===$.label?[]:{text:$.label,link:Dt($.link||(_==="root"?"/":`/${_}/`),r.value.i18nRouting!==!1&&e,s.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function Dt(n,e,t,o){return e?n.replace(/\/$/,"")+ve(t.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,o?".html":"")):n}const Ft=["src","alt"],Ot={inheritAttrs:!1},Gt=g({...Ot,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const o=U("VPImage",!0);return e.image?(a(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",se({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(he)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Ft)):(a(),l(C,{key:1},[h(o,se({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(o,se({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}});const be=m(Gt,[["__scopeId","data-v-dc109a54"]]),Rt=["href"],Ut=g({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:o}=F(),{currentLang:s}=ne();return(r,d)=>(a(),l("div",{class:B(["VPNavBarTitle",{"has-sidebar":i(o)}])},[u("a",{class:"title",href:i(ee)(i(s).link)},[c(r.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),y(be,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):f("",!0),i(t).siteTitle?(a(),l(C,{key:1},[x(P(i(t).siteTitle),1)],64)):i(t).siteTitle===void 0?(a(),l(C,{key:2},[x(P(i(e).title),1)],64)):f("",!0),c(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,Rt)],2))}});const qt=m(Ut,[["__scopeId","data-v-c9cfcc93"]]);const jt={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},Kt={class:"DocSearch-Button-Container"},Wt=u("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[u("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Yt={class:"DocSearch-Button-Placeholder"},Xt=u("span",{class:"DocSearch-Button-Keys"},[u("kbd",{class:"DocSearch-Button-Key"}),u("kbd",{class:"DocSearch-Button-Key"},"K")],-1),xe=g({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(n){return(e,t)=>(a(),l("button",jt,[u("span",Kt,[Wt,u("span",Yt,P(e.placeholder),1)]),Xt]))}});const Qt={id:"local-search"},Jt={key:1,id:"docsearch"},Zt=g({__name:"VPNavBarSearch",setup(n){const e=()=>null,t=ut(()=>dt(()=>import("./VPAlgoliaSearchBox.2c3131d2.js"),["assets/chunks/VPAlgoliaSearchBox.2c3131d2.js","assets/chunks/framework.fed62f4c.js"])),{theme:o,localeIndex:s}=V(),r=S(!1),d=S(!1),p=b(()=>{var k,M,H,Y,Be,Te,Ne;const L=((k=o.value.search)==null?void 0:k.options)??o.value.algolia;return((Be=(Y=(H=(M=L==null?void 0:L.locales)==null?void 0:M[s.value])==null?void 0:H.translations)==null?void 0:Y.button)==null?void 0:Be.buttonText)||((Ne=(Te=L==null?void 0:L.translations)==null?void 0:Te.button)==null?void 0:Ne.buttonText)||"Search"}),_=()=>{const L="VPAlgoliaPreconnect";(window.requestIdleCallback||setTimeout)(()=>{var H;const M=document.createElement("link");M.id=L,M.rel="preconnect",M.href=`https://${(((H=o.value.search)==null?void 0:H.options)??o.value.algolia).appId}-dsn.algolia.net`,M.crossOrigin="",document.head.appendChild(M)})};O(()=>{_();const L=M=>{(M.key.toLowerCase()==="k"&&(M.metaKey||M.ctrlKey)||!N(M)&&M.key==="/")&&(M.preventDefault(),$(),k())},k=()=>{window.removeEventListener("keydown",L)};window.addEventListener("keydown",L),le(k)});function $(){r.value||(r.value=!0,setTimeout(T,16))}function T(){const L=new Event("keydown");L.key="k",L.metaKey=!0,window.dispatchEvent(L),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||T()},16)}function N(L){const k=L.target,M=k.tagName;return k.isContentEditable||M==="INPUT"||M==="SELECT"||M==="TEXTAREA"}const I=S(!1),w=S("'Meta'");O(()=>{w.value=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"'⌘'":"'Ctrl'"});const A="algolia";return(L,k)=>{var M;return a(),l("div",{class:"VPNavBarSearch",style:De({"--vp-meta-key":w.value})},[i(A)==="local"?(a(),l(C,{key:0},[I.value?(a(),y(i(e),{key:0,placeholder:p.value,onClose:k[0]||(k[0]=H=>I.value=!1)},null,8,["placeholder"])):f("",!0),u("div",Qt,[h(xe,{placeholder:p.value,onClick:k[1]||(k[1]=H=>I.value=!0)},null,8,["placeholder"])])],64)):i(A)==="algolia"?(a(),l(C,{key:1},[r.value?(a(),y(i(t),{key:0,algolia:((M=i(o).search)==null?void 0:M.options)??i(o).algolia,onVnodeBeforeMount:k[2]||(k[2]=H=>d.value=!0)},null,8,["algolia"])):f("",!0),d.value?f("",!0):(a(),l("div",Jt,[h(xe,{placeholder:p.value,onClick:$},null,8,["placeholder"])]))],64)):f("",!0)],4)}}});const en={},tn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},nn=u("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),sn=u("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),on=[nn,sn];function an(n,e){return a(),l("svg",tn,on)}const rn=m(en,[["render",an]]),ln=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=b(()=>e.tag??e.href?"a":"span"),o=b(()=>e.href&&Fe.test(e.href));return(s,r)=>(a(),y(q(t.value),{class:B(["VPLink",{link:s.href}]),href:s.href?i(ee)(s.href):void 0,target:s.target||(o.value?"_blank":void 0),rel:s.rel||(o.value?"noreferrer":void 0)},{default:v(()=>[c(s.$slots,"default",{},void 0,!0),o.value&&!s.noIcon?(a(),y(rn,{key:0,class:"icon"})):f("",!0)]),_:3},8,["class","href","target","rel"]))}});const G=m(ln,[["__scopeId","data-v-f3ed0000"]]),cn=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,o)=>(a(),y(G,{class:B({VPNavBarMenuLink:!0,active:i(W)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[x(P(t.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const un=m(cn,[["__scopeId","data-v-7f10a92a"]]),$e=S();let Ke=!1,de=0;function dn(n){const e=S(!1);if(Oe){!Ke&&_n(),de++;const t=K($e,o=>{var s,r,d;o===n.el.value||(s=n.el.value)!=null&&s.contains(o)?(e.value=!0,(r=n.onFocus)==null||r.call(n)):(e.value=!1,(d=n.onBlur)==null||d.call(n))});le(()=>{t(),de--,de||vn()})}return ze(e)}function _n(){document.addEventListener("focusin",We),Ke=!0,$e.value=document.activeElement}function vn(){document.removeEventListener("focusin",We)}function We(){$e.value=document.activeElement}const pn={},hn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},fn=u("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),mn=[fn];function gn(n,e){return a(),l("svg",hn,mn)}const Ye=m(pn,[["render",gn]]),yn={},bn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},$n=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),kn=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),Pn=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Vn=[$n,kn,Pn];function wn(n,e){return a(),l("svg",bn,Vn)}const Sn=m(yn,[["render",wn]]),Ln={class:"VPMenuLink"},Mn=g({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,o)=>(a(),l("div",Ln,[h(G,{class:B({active:i(W)(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(()=>[x(P(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ce=m(Mn,[["__scopeId","data-v-2a4d50e5"]]),Cn={class:"VPMenuGroup"},In={key:0,class:"title"},Bn=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),l("div",Cn,[e.text?(a(),l("p",In,P(e.text),1)):f("",!0),(a(!0),l(C,null,E(e.items,o=>(a(),l(C,null,["link"in o?(a(),y(ce,{key:0,item:o},null,8,["item"])):f("",!0)],64))),256))]))}});const Tn=m(Bn,[["__scopeId","data-v-a6b0397c"]]),Nn={class:"VPMenu"},An={key:0,class:"items"},xn=g({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),l("div",Nn,[e.items?(a(),l("div",An,[(a(!0),l(C,null,E(e.items,o=>(a(),l(C,{key:o.text},["link"in o?(a(),y(ce,{key:0,item:o},null,8,["item"])):(a(),y(Tn,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(e.$slots,"default",{},void 0,!0)]))}});const En=m(xn,[["__scopeId","data-v-e42ed9b3"]]),Hn=["aria-expanded","aria-label"],zn={key:0,class:"text"},Dn={class:"menu"},Fn=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=S(!1),t=S();dn({el:t,onBlur:o});function o(){e.value=!1}return(s,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[s.button||s.icon?(a(),l("span",zn,[s.icon?(a(),y(q(s.icon),{key:0,class:"option-icon"})):f("",!0),x(" "+P(s.button)+" ",1),h(Ye,{class:"text-icon"})])):(a(),y(Sn,{key:1,class:"icon"}))],8,Hn),u("div",Dn,[h(En,{items:s.items},{default:v(()=>[c(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const ke=m(Fn,[["__scopeId","data-v-6afe904b"]]),On=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const{page:e}=V();return(t,o)=>(a(),y(ke,{class:B({VPNavBarMenuGroup:!0,active:i(W)(i(e).relativePath,t.item.activeMatch,!!t.item.activeMatch)}),button:t.item.text,items:t.item.items},null,8,["class","button","items"]))}}),Gn=n=>(z("data-v-f732b5d0"),n=n(),D(),n),Rn={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Un=Gn(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),qn=g({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,o)=>i(e).nav?(a(),l("nav",Rn,[Un,(a(!0),l(C,null,E(i(e).nav,s=>(a(),l(C,{key:s.text},["link"in s?(a(),y(un,{key:0,item:s},null,8,["item"])):(a(),y(On,{key:1,item:s},null,8,["item"]))],64))),128))])):f("",!0)}});const jn=m(qn,[["__scopeId","data-v-f732b5d0"]]),Kn={},Wn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Yn=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),Xn=u("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),Qn=[Yn,Xn];function Jn(n,e){return a(),l("svg",Wn,Qn)}const Xe=m(Kn,[["render",Jn]]),Zn={class:"items"},es={class:"title"},ts=g({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:o}=ne({correspondingLink:!0});return(s,r)=>i(t).length&&i(o).label?(a(),y(ke,{key:0,class:"VPNavBarTranslations",icon:Xe,label:i(e).langMenuLabel||"Change language"},{default:v(()=>[u("div",Zn,[u("p",es,P(i(o).label),1),(a(!0),l(C,null,E(i(t),d=>(a(),y(ce,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}});const ns=m(ts,[["__scopeId","data-v-ff4524ae"]]);const ss={},os={class:"VPSwitch",type:"button",role:"switch"},as={class:"check"},rs={key:0,class:"icon"};function is(n,e){return a(),l("button",os,[u("span",as,[n.$slots.default?(a(),l("span",rs,[c(n.$slots,"default",{},void 0,!0)])):f("",!0)])])}const ls=m(ss,[["render",is],["__scopeId","data-v-92d8f6fb"]]),cs={},us={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ds=_t('',9),_s=[ds];function vs(n,e){return a(),l("svg",us,_s)}const ps=m(cs,[["render",vs]]),hs={},fs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ms=u("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),gs=[ms];function ys(n,e){return a(),l("svg",fs,gs)}const bs=m(hs,[["render",ys]]),$s=g({__name:"VPSwitchAppearance",setup(n){const{site:e,isDark:t}=V(),o=S(!1),s=Oe?r():()=>{};O(()=>{o.value=document.documentElement.classList.contains("dark")});function r(){const d=window.matchMedia("(prefers-color-scheme: dark)"),p=document.documentElement.classList;let _=localStorage.getItem(Ae),$=e.value.appearance==="dark"&&_==null||(_==="auto"||_==null?d.matches:_==="dark");d.onchange=I=>{_==="auto"&&N($=I.matches)};function T(){N($=!$),_=$?d.matches?"auto":"dark":d.matches?"light":"auto",localStorage.setItem(Ae,_)}function N(I){const w=document.createElement("style");w.type="text/css",w.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - -ms-transition: none !important; - transition: none !important; -}`)),document.head.appendChild(w),o.value=I,p[I?"add":"remove"]("dark"),window.getComputedStyle(w).opacity,document.head.removeChild(w)}return T}return K(o,d=>{t.value=d}),(d,p)=>(a(),y(ls,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":o.value,onClick:i(s)},{default:v(()=>[h(ps,{class:"sun"}),h(bs,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const Pe=m($s,[["__scopeId","data-v-a99ed743"]]),ks={key:0,class:"VPNavBarAppearance"},Ps=g({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,o)=>i(e).appearance?(a(),l("div",ks,[h(Pe)])):f("",!0)}});const Vs=m(Ps,[["__scopeId","data-v-5e9f0637"]]),ws={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},Ss=["href","aria-label","innerHTML"],Ls=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=b(()=>typeof e.icon=="object"?e.icon.svg:ws[e.icon]);return(o,s)=>(a(),l("a",{class:"VPSocialLink",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Ss))}});const Ms=m(Ls,[["__scopeId","data-v-06866c4b"]]),Cs={class:"VPSocialLinks"},Is=g({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),l("div",Cs,[(a(!0),l(C,null,E(e.links,({link:o,icon:s,ariaLabel:r})=>(a(),y(Ms,{key:o,icon:s,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}});const Ve=m(Is,[["__scopeId","data-v-e71e869c"]]),Bs=g({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,o)=>i(e).socialLinks?(a(),y(Ve,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}});const Ts=m(Bs,[["__scopeId","data-v-ef6192dc"]]),Ns={key:0,class:"group translations"},As={class:"trans-title"},xs={key:1,class:"group"},Es={class:"item appearance"},Hs={class:"label"},zs={class:"appearance-action"},Ds={key:2,class:"group"},Fs={class:"item social-links"},Os=g({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:o,currentLang:s}=ne({correspondingLink:!0}),r=b(()=>o.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(d,p)=>r.value?(a(),y(ke,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(o).length&&i(s).label?(a(),l("div",Ns,[u("p",As,P(i(s).label),1),(a(!0),l(C,null,E(i(o),_=>(a(),y(ce,{key:_.link,item:_},null,8,["item"]))),128))])):f("",!0),i(e).appearance?(a(),l("div",xs,[u("div",Es,[u("p",Hs,P(i(t).darkModeSwitchLabel||"Appearance"),1),u("div",zs,[h(Pe)])])])):f("",!0),i(t).socialLinks?(a(),l("div",Ds,[u("div",Fs,[h(Ve,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}});const Gs=m(Os,[["__scopeId","data-v-c8c2ae4b"]]),Rs=n=>(z("data-v-6bee1efd"),n=n(),D(),n),Us=["aria-expanded"],qs=Rs(()=>u("span",{class:"container"},[u("span",{class:"top"}),u("span",{class:"middle"}),u("span",{class:"bottom"})],-1)),js=[qs],Ks=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),l("button",{type:"button",class:B(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=o=>e.$emit("click"))},js,10,Us))}});const Ws=m(Ks,[["__scopeId","data-v-6bee1efd"]]),Ys=n=>(z("data-v-d797c19b"),n=n(),D(),n),Xs={class:"container"},Qs={class:"title"},Js={class:"content"},Zs=Ys(()=>u("div",{class:"curtain"},null,-1)),eo={class:"content-body"},to=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const{y:e}=qe(),{hasSidebar:t}=F(),o=b(()=>({"has-sidebar":t.value,fill:e.value>0}));return(s,r)=>(a(),l("div",{class:B(["VPNavBar",o.value])},[u("div",Xs,[u("div",Qs,[h(qt,null,{"nav-bar-title-before":v(()=>[c(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(s.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),u("div",Js,[Zs,u("div",eo,[c(s.$slots,"nav-bar-content-before",{},void 0,!0),h(Zt,{class:"search"}),h(jn,{class:"menu"}),h(ns,{class:"translations"}),h(Vs,{class:"appearance"}),h(Ts,{class:"social-links"}),h(Gs,{class:"extra"}),c(s.$slots,"nav-bar-content-after",{},void 0,!0),h(Ws,{class:"hamburger",active:s.isScreenOpen,onClick:r[0]||(r[0]=d=>s.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const no=m(to,[["__scopeId","data-v-d797c19b"]]);function so(n){if(Array.isArray(n)){for(var e=0,t=Array(n.length);e1),j=[],re=!1,Se=-1,X=void 0,R=void 0,Q=void 0,Qe=function(e){return j.some(function(t){return!!(t.options.allowTouchMove&&t.options.allowTouchMove(e))})},ie=function(e){var t=e||window.event;return Qe(t.target)||t.touches.length>1?!0:(t.preventDefault&&t.preventDefault(),!1)},oo=function(e){if(Q===void 0){var t=!!e&&e.reserveScrollBarGap===!0,o=window.innerWidth-document.documentElement.clientWidth;if(t&&o>0){var s=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);Q=document.body.style.paddingRight,document.body.style.paddingRight=s+o+"px"}}X===void 0&&(X=document.body.style.overflow,document.body.style.overflow="hidden")},ao=function(){Q!==void 0&&(document.body.style.paddingRight=Q,Q=void 0),X!==void 0&&(document.body.style.overflow=X,X=void 0)},ro=function(){return window.requestAnimationFrame(function(){if(R===void 0){R={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e=window,t=e.scrollY,o=e.scrollX,s=e.innerHeight;document.body.style.position="fixed",document.body.style.top=-t,document.body.style.left=-o,setTimeout(function(){return window.requestAnimationFrame(function(){var r=s-window.innerHeight;r&&t>=s&&(document.body.style.top=-(t+r))})},300)}})},io=function(){if(R!==void 0){var e=-parseInt(document.body.style.top,10),t=-parseInt(document.body.style.left,10);document.body.style.position=R.position,document.body.style.top=R.top,document.body.style.left=R.left,window.scrollTo(t,e),R=void 0}},lo=function(e){return e?e.scrollHeight-e.scrollTop<=e.clientHeight:!1},co=function(e,t){var o=e.targetTouches[0].clientY-Se;return Qe(e.target)?!1:t&&t.scrollTop===0&&o>0||lo(t)&&o<0?ie(e):(e.stopPropagation(),!0)},Je=function(e,t){if(!e){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!j.some(function(s){return s.targetElement===e})){var o={targetElement:e,options:t||{}};j=[].concat(so(j),[o]),ae?ro():oo(t),ae&&(e.ontouchstart=function(s){s.targetTouches.length===1&&(Se=s.targetTouches[0].clientY)},e.ontouchmove=function(s){s.targetTouches.length===1&&co(s,e)},re||(document.addEventListener("touchmove",ie,we?{passive:!1}:void 0),re=!0))}},Ze=function(){ae&&(j.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),re&&(document.removeEventListener("touchmove",ie,we?{passive:!1}:void 0),re=!1),Se=-1),ae?io():ao(),j=[]};const uo=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=me("close-screen");return(t,o)=>(a(),y(G,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[x(P(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const _o=m(uo,[["__scopeId","data-v-08b49756"]]),vo={},po={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ho=u("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),fo=[ho];function mo(n,e){return a(),l("svg",po,fo)}const go=m(vo,[["render",mo]]),yo=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=me("close-screen");return(t,o)=>(a(),y(G,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[x(P(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const et=m(yo,[["__scopeId","data-v-97083fb3"]]),bo={class:"VPNavScreenMenuGroupSection"},$o={key:0,class:"title"},ko=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),l("div",bo,[e.text?(a(),l("p",$o,P(e.text),1)):f("",!0),(a(!0),l(C,null,E(e.items,o=>(a(),y(et,{key:o.text,item:o},null,8,["item"]))),128))]))}});const Po=m(ko,[["__scopeId","data-v-f60dbfa7"]]),Vo=["aria-controls","aria-expanded"],wo={class:"button-text"},So=["id"],Lo={key:1,class:"group"},Mo=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=S(!1),o=b(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(r,d)=>(a(),l("div",{class:B(["VPNavScreenMenuGroup",{open:t.value}])},[u("button",{class:"button","aria-controls":o.value,"aria-expanded":t.value,onClick:s},[u("span",wo,P(r.text),1),h(go,{class:"button-icon"})],8,Vo),u("div",{id:o.value,class:"items"},[(a(!0),l(C,null,E(r.items,p=>(a(),l(C,{key:p.text},["link"in p?(a(),l("div",{key:p.text,class:"item"},[h(et,{item:p},null,8,["item"])])):(a(),l("div",Lo,[h(Po,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,So)],2))}});const Co=m(Mo,[["__scopeId","data-v-10e00a88"]]),Io={key:0,class:"VPNavScreenMenu"},Bo=g({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,o)=>i(e).nav?(a(),l("nav",Io,[(a(!0),l(C,null,E(i(e).nav,s=>(a(),l(C,{key:s.text},["link"in s?(a(),y(_o,{key:0,item:s},null,8,["item"])):(a(),y(Co,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),To={key:0,class:"VPNavScreenAppearance"},No={class:"text"},Ao=g({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(o,s)=>i(e).appearance?(a(),l("div",To,[u("p",No,P(i(t).darkModeSwitchLabel||"Appearance"),1),h(Pe)])):f("",!0)}});const xo=m(Ao,[["__scopeId","data-v-0dc5cf49"]]),Eo={class:"list"},Ho=g({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=ne({correspondingLink:!0}),o=S(!1);function s(){o.value=!o.value}return(r,d)=>i(e).length&&i(t).label?(a(),l("div",{key:0,class:B(["VPNavScreenTranslations",{open:o.value}])},[u("button",{class:"title",onClick:s},[h(Xe,{class:"icon lang"}),x(" "+P(i(t).label)+" ",1),h(Ye,{class:"icon chevron"})]),u("ul",Eo,[(a(!0),l(C,null,E(i(e),p=>(a(),l("li",{key:p.link,class:"item"},[h(G,{class:"link",href:p.link},{default:v(()=>[x(P(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}});const zo=m(Ho,[["__scopeId","data-v-41505286"]]),Do=g({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,o)=>i(e).socialLinks?(a(),y(Ve,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),Fo={class:"container"},Oo=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=S(null);function t(){Je(e.value,{reserveScrollBarGap:!0})}function o(){Ze()}return(s,r)=>(a(),y(fe,{name:"fade",onEnter:t,onAfterLeave:o},{default:v(()=>[s.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e},[u("div",Fo,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),h(Bo,{class:"menu"}),h(zo,{class:"translations"}),h(xo,{class:"appearance"}),h(Do,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}});const Go=m(Oo,[["__scopeId","data-v-183ec3ec"]]),Ro={class:"VPNav"},Uo=g({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=zt();return oe("close-screen",t),(s,r)=>(a(),l("header",Ro,[h(no,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":v(()=>[c(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(s.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(s.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(s.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(Go,{open:i(e)},{"nav-screen-content-before":v(()=>[c(s.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(s.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const qo=m(Uo,[["__scopeId","data-v-5bdc5df3"]]);function jo(){const{hasSidebar:n}=F(),e=_e("(min-width: 960px)"),t=_e("(min-width: 1280px)");return{isAsideEnabled:b(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const Ko=71;function Le(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function Me(n){const e=[...document.querySelectorAll(".VPDoc h2,h3,h4,h5,h6")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{title:Wo(t),link:"#"+t.id,level:o}});return Yo(e,n)}function Wo(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Yo(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(d=>d.level>=o&&d.level<=s);const r=[];e:for(let d=0;d=0;_--){const $=n[_];if($.level{requestAnimationFrame(r),window.addEventListener("scroll",o)}),vt(()=>{d(location.hash)}),le(()=>{window.removeEventListener("scroll",o)});function r(){if(!t.value)return;const p=[].slice.call(n.value.querySelectorAll(".outline-link")),_=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(w=>p.some(A=>A.hash===w.hash&&w.offsetParent!==null)),$=window.scrollY,T=window.innerHeight,N=document.body.offsetHeight,I=Math.abs($+T-N)<1;if(_.length&&I){d(_[_.length-1].hash);return}for(let w=0;w<_.length;w++){const A=_[w],L=_[w+1],[k,M]=Qo(w,A,L);if(k){d(M);return}}}function d(p){s&&s.classList.remove("active"),p!==null&&(s=n.value.querySelector(`a[href="${decodeURIComponent(p)}"]`));const _=s;_?(_.classList.add("active"),e.value.style.top=_.offsetTop+33+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function He(n){return n.parentElement.offsetTop-Ko}function Qo(n,e,t){const o=window.scrollY;return n===0&&o===0?[!0,null]:o{const s=U("VPDocOutlineItem",!0);return a(),l("ul",{class:B(t.root?"root":"nested")},[(a(!0),l(C,null,E(t.headers,({children:r,link:d,title:p})=>(a(),l("li",null,[u("a",{class:"outline-link",href:d,onClick:e,title:p},P(p),9,Jo),r!=null&&r.length?(a(),y(s,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}});const Ce=m(Zo,[["__scopeId","data-v-a379eb72"]]),ea={},ta={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},na=u("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),sa=[na];function oa(n,e){return a(),l("svg",ta,sa)}const Ie=m(ea,[["render",oa]]),aa=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{}},setup(n){const{theme:e}=V(),t=S(!1),o=S(0),s=S();Z(()=>{t.value=!1});function r(){t.value=!t.value,o.value=window.innerHeight+Math.min(window.scrollY-64,0)}function d(_){_.target.classList.contains("outline-link")&&(s.value&&(s.value.style.transition="none"),pt(()=>{t.value=!1}))}function p(){t.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,$)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:De({"--vp-vh":o.value+"px"})},[_.headers.length>0?(a(),l("button",{key:0,onClick:r,class:B({open:t.value})},[x(P(i(Le)(i(e)))+" ",1),h(Ie,{class:"icon"})],2)):(a(),l("button",{key:1,onClick:p},P(i(e).returnToTopLabel||"Return to top"),1)),h(fe,{name:"flyout"},{default:v(()=>[t.value?(a(),l("div",{key:0,ref_key:"items",ref:s,class:"items",onClick:d},[u("a",{class:"top-link",href:"#",onClick:p},P(i(e).returnToTopLabel||"Return to top"),1),h(Ce,{headers:_.headers},null,8,["headers"])],512)):f("",!0)]),_:1})],4))}});const ra=m(aa,[["__scopeId","data-v-30830f13"]]),ia={},la={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ca=u("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),ua=u("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),da=u("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),_a=u("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),va=[ca,ua,da,_a];function pa(n,e){return a(),l("svg",la,va)}const ha=m(ia,[["render",pa]]),fa=["aria-expanded"],ma={class:"menu-text"},ga=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:o}=F(),{y:s}=qe(),r=ge([]);Z(()=>{r.value=Me(t.value.outline??e.value.outline)});const d=b(()=>r.value.length===0&&!o.value),p=b(()=>({VPLocalNav:!0,fixed:d.value,"reached-top":s.value>=64}));return(_,$)=>i(t).layout!=="home"&&(!d.value||i(s)>=64)?(a(),l("div",{key:0,class:B(p.value)},[i(o)?(a(),l("button",{key:0,class:"menu","aria-expanded":_.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=T=>_.$emit("open-menu"))},[h(ha,{class:"menu-icon"}),u("span",ma,P(i(e).sidebarMenuLabel||"Menu"),1)],8,fa)):f("",!0),h(ra,{headers:r.value},null,8,["headers"])],2)):f("",!0)}});const ya=m(ga,[["__scopeId","data-v-16394e0b"]]),ba=n=>(z("data-v-0bb349fd"),n=n(),D(),n),$a=["role","tabindex"],ka=ba(()=>u("div",{class:"indicator"},null,-1)),Pa=["onKeydown"],Va={key:1,class:"items"},wa=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}=Tt(b(()=>e.item)),$=b(()=>p.value?"section":"div"),T=b(()=>s.value?"a":"div"),N=b(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),I=b(()=>s.value?void 0:"button"),w=b(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:t.value},{"is-link":s.value},{"is-active":r.value},{"has-active":d.value}]);function A(k){"key"in k&&k.key!=="Enter"||!e.item.link&&_()}function L(){e.item.link&&_()}return(k,M)=>{const H=U("VPSidebarItem",!0);return a(),y(q($.value),{class:B(["VPSidebarItem",w.value])},{default:v(()=>[k.item.text?(a(),l("div",se({key:0,class:"item",role:I.value},ft(k.item.items?{click:A,keydown:A}:{},!0),{tabindex:k.item.items&&0}),[ka,k.item.link?(a(),y(G,{key:0,tag:T.value,class:"link",href:k.item.link},{default:v(()=>[(a(),y(q(N.value),{class:"text",innerHTML:k.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(a(),y(q(N.value),{key:1,class:"text",innerHTML:k.item.text},null,8,["innerHTML"])),k.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:L,onKeydown:ht(L,["enter"]),tabindex:"0"},[h(Ie,{class:"caret-icon"})],40,Pa)):f("",!0)],16,$a)):f("",!0),k.item.items&&k.item.items.length?(a(),l("div",Va,[k.depth<5?(a(!0),l(C,{key:0},E(k.item.items,Y=>(a(),y(H,{key:Y.text,item:Y,depth:k.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}});const Sa=m(wa,[["__scopeId","data-v-0bb349fd"]]),tt=n=>(z("data-v-fe05da0a"),n=n(),D(),n),La=tt(()=>u("div",{class:"curtain"},null,-1)),Ma={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ca=tt(()=>u("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Ia=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const e=n,{sidebarGroups:t,hasSidebar:o}=F();let s=S(null);function r(){Je(s.value,{reserveScrollBarGap:!0})}function d(){Ze()}return mt(async()=>{var p;e.open?(r(),(p=s.value)==null||p.focus()):d()}),(p,_)=>i(o)?(a(),l("aside",{key:0,class:B(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:s,onClick:_[0]||(_[0]=gt(()=>{},["stop"]))},[La,u("nav",Ma,[Ca,c(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(C,null,E(i(t),$=>(a(),l("div",{key:$.text,class:"group"},[h(Sa,{item:$,depth:0},null,8,["item"])]))),128)),c(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}});const Ba=m(Ia,[["__scopeId","data-v-fe05da0a"]]),Ta={},Na={class:"VPPage"};function Aa(n,e){const t=U("Content");return a(),l("div",Na,[c(n.$slots,"page-top"),h(t),c(n.$slots,"page-bottom")])}const xa=m(Ta,[["render",Aa]]),Ea=g({__name:"VPButton",props:{tag:{},size:{},theme:{},text:{},href:{}},setup(n){const e=n,t=b(()=>[e.size??"medium",e.theme??"brand"]),o=b(()=>e.href&&Fe.test(e.href)),s=b(()=>e.tag?e.tag:e.href?"a":"button");return(r,d)=>(a(),y(q(s.value),{class:B(["VPButton",t.value]),href:r.href?i(ee)(r.href):void 0,target:o.value?"_blank":void 0,rel:o.value?"noreferrer":void 0},{default:v(()=>[x(P(r.text),1)]),_:1},8,["class","href","target","rel"]))}});const Ha=m(Ea,[["__scopeId","data-v-fa1633a1"]]),za=n=>(z("data-v-73fffaef"),n=n(),D(),n),Da={class:"container"},Fa={class:"main"},Oa={key:0,class:"name"},Ga={class:"clip"},Ra={key:1,class:"text"},Ua={key:2,class:"tagline"},qa={key:0,class:"actions"},ja={key:0,class:"image"},Ka={class:"image-container"},Wa=za(()=>u("div",{class:"image-bg"},null,-1)),Ya=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=me("hero-image-slot-exists");return(t,o)=>(a(),l("div",{class:B(["VPHero",{"has-image":t.image||i(e)}])},[u("div",Da,[u("div",Fa,[c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",Oa,[u("span",Ga,P(t.name),1)])):f("",!0),t.text?(a(),l("p",Ra,P(t.text),1)):f("",!0),t.tagline?(a(),l("p",Ua,P(t.tagline),1)):f("",!0)],!0),t.actions?(a(),l("div",qa,[(a(!0),l(C,null,E(t.actions,s=>(a(),l("div",{key:s.link,class:"action"},[h(Ha,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link},null,8,["theme","text","href"])]))),128))])):f("",!0)]),t.image||i(e)?(a(),l("div",ja,[u("div",Ka,[Wa,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),y(be,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}});const Xa=m(Ya,[["__scopeId","data-v-73fffaef"]]),Qa=g({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,o)=>i(e).hero?(a(),y(Xa,{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":v(()=>[c(t.$slots,"home-hero-info")]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ja={},Za={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},er=u("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),tr=[er];function nr(n,e){return a(),l("svg",Za,tr)}const sr=m(Ja,[["render",nr]]),or={class:"box"},ar=["innerHTML"],rr=["innerHTML"],ir=["innerHTML"],lr={key:3,class:"link-text"},cr={class:"link-text-value"},ur=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{}},setup(n){return(e,t)=>(a(),y(G,{class:"VPFeature",href:e.link,"no-icon":!0},{default:v(()=>[u("article",or,[typeof e.icon=="object"?(a(),y(be,{key:0,image:e.icon,alt:e.icon.alt,height:e.icon.height,width:e.icon.width},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:1,class:"icon",innerHTML:e.icon},null,8,ar)):f("",!0),u("h2",{class:"title",innerHTML:e.title},null,8,rr),e.details?(a(),l("p",{key:2,class:"details",innerHTML:e.details},null,8,ir)):f("",!0),e.linkText?(a(),l("div",lr,[u("p",cr,[x(P(e.linkText)+" ",1),h(sr,{class:"link-text-icon"})])])):f("",!0)])]),_:1},8,["href"]))}});const dr=m(ur,[["__scopeId","data-v-5f01e926"]]),_r={key:0,class:"VPFeatures"},vr={class:"container"},pr={class:"items"},hr=g({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=b(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,s)=>o.features?(a(),l("div",_r,[u("div",vr,[u("div",pr,[(a(!0),l(C,null,E(o.features,r=>(a(),l("div",{key:r.title,class:B(["item",[t.value]])},[h(dr,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText},null,8,["icon","title","details","link","link-text"])],2))),128))])])])):f("",!0)}});const fr=m(hr,[["__scopeId","data-v-fcd3089b"]]),mr=g({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,o)=>i(e).features?(a(),y(fr,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):f("",!0)}}),gr={class:"VPHome"},yr=g({__name:"VPHome",setup(n){return(e,t)=>{const o=U("Content");return a(),l("div",gr,[c(e.$slots,"home-hero-before",{},void 0,!0),h(Qa,null,{"home-hero-info":v(()=>[c(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(e.$slots,"home-hero-after",{},void 0,!0),c(e.$slots,"home-features-before",{},void 0,!0),h(mr),c(e.$slots,"home-features-after",{},void 0,!0),h(o)])}}});const br=m(yr,[["__scopeId","data-v-20eabd3a"]]),$r=n=>(z("data-v-c834746b"),n=n(),D(),n),kr={class:"content"},Pr={class:"outline-title"},Vr={"aria-labelledby":"doc-outline-aria-label"},wr=$r(()=>u("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Sr=g({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),o=ge([]);Z(()=>{o.value=Me(e.value.outline??t.value.outline)});const s=S(),r=S();return Xo(s,r),(d,p)=>(a(),l("div",{class:B(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:s},[u("div",kr,[u("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),u("div",Pr,P(i(Le)(i(t))),1),u("nav",Vr,[wr,h(Ce,{headers:o.value,root:!0},null,8,["headers"])])])],2))}});const Lr=m(Sr,[["__scopeId","data-v-c834746b"]]),Mr={class:"VPDocAsideCarbonAds"},Cr=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,o)=>(a(),l("div",Mr,[h(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ir=n=>(z("data-v-cb998dce"),n=n(),D(),n),Br={class:"VPDocAside"},Tr=Ir(()=>u("div",{class:"spacer"},null,-1)),Nr=g({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,o)=>(a(),l("div",Br,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),h(Lr),c(t.$slots,"aside-outline-after",{},void 0,!0),Tr,c(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),y(Cr,{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)]))}});const Ar=m(Nr,[["__scopeId","data-v-cb998dce"]]);function xr(){const{theme:n,page:e}=V();return b(()=>{const{text:t="Edit this page",pattern:o=""}=n.value.editLink||{};let s;return typeof o=="function"?s=o(e.value):s=o.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Er(){const{page:n,theme:e,frontmatter:t}=V();return b(()=>{var _,$,T,N,I,w;const o=je(e.value.sidebar,n.value.relativePath),s=It(o),r=s.findIndex(A=>W(n.value.relativePath,A.link)),d=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,p=(($=e.value.docFooter)==null?void 0:$.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((T=s[r-1])==null?void 0:T.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((N=s[r-1])==null?void 0:N.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)??((I=s[r+1])==null?void 0:I.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=s[r+1])==null?void 0:w.link)}}})}const Hr={},zr={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Dr=u("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),Fr=u("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),Or=[Dr,Fr];function Gr(n,e){return a(),l("svg",zr,Or)}const Rr=m(Hr,[["render",Gr]]),Ur={class:"VPLastUpdated"},qr=["datetime"],jr=g({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:o}=V(),s=b(()=>new Date(t.value.lastUpdated)),r=b(()=>s.value.toISOString()),d=S("");return O(()=>{J(()=>{d.value=s.value.toLocaleString(o.value)})}),(p,_)=>(a(),l("p",Ur,[x(P(i(e).lastUpdatedText||"Last updated")+": ",1),u("time",{datetime:r.value},P(d.value),9,qr)]))}});const Kr=m(jr,[["__scopeId","data-v-0de45606"]]),Wr={key:0,class:"VPDocFooter"},Yr={key:0,class:"edit-info"},Xr={key:0,class:"edit-link"},Qr={key:1,class:"last-updated"},Jr={key:1,class:"prev-next"},Zr={class:"pager"},ei=["href"],ti=["innerHTML"],ni=["innerHTML"],si=["href"],oi=["innerHTML"],ai=["innerHTML"],ri=g({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:o}=V(),s=xr(),r=Er(),d=b(()=>e.value.editLink&&o.value.editLink!==!1),p=b(()=>t.value.lastUpdated&&o.value.lastUpdated!==!1),_=b(()=>d.value||p.value||r.value.prev||r.value.next);return($,T)=>{var N,I,w,A,L,k,M;return _.value?(a(),l("footer",Wr,[c($.$slots,"doc-footer-before",{},void 0,!0),d.value||p.value?(a(),l("div",Yr,[d.value?(a(),l("div",Xr,[h(G,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:v(()=>[h(Rr,{class:"edit-link-icon","aria-label":"edit icon"}),x(" "+P(i(s).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(a(),l("div",Qr,[h(Kr)])):f("",!0)])):f("",!0),(N=i(r).prev)!=null&&N.link||(I=i(r).next)!=null&&I.link?(a(),l("div",Jr,[u("div",Zr,[(w=i(r).prev)!=null&&w.link?(a(),l("a",{key:0,class:"pager-link prev",href:i(ee)(i(r).prev.link)},[u("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.prev)||"Previous page"},null,8,ti),u("span",{class:"title",innerHTML:i(r).prev.text},null,8,ni)],8,ei)):f("",!0)]),u("div",{class:B(["pager",{"has-prev":(L=i(r).prev)==null?void 0:L.link}])},[(k=i(r).next)!=null&&k.link?(a(),l("a",{key:0,class:"pager-link next",href:i(ee)(i(r).next.link)},[u("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.next)||"Next page"},null,8,oi),u("span",{class:"title",innerHTML:i(r).next.text},null,8,ai)],8,si)):f("",!0)],2)])):f("",!0)])):f("",!0)}}});const ii=m(ri,[["__scopeId","data-v-fc0d1b73"]]),li={key:0,class:"VPDocOutlineDropdown"},ci={key:0,class:"items"},ui=g({__name:"VPDocOutlineDropdown",setup(n){const{frontmatter:e,theme:t}=V(),o=S(!1);Z(()=>{o.value=!1});const s=ge([]);return Z(()=>{s.value=Me(e.value.outline??t.value.outline)}),(r,d)=>s.value.length>0?(a(),l("div",li,[u("button",{onClick:d[0]||(d[0]=p=>o.value=!o.value),class:B({open:o.value})},[x(P(i(Le)(i(t)))+" ",1),h(Ie,{class:"icon"})],2),o.value?(a(),l("div",ci,[h(Ce,{headers:s.value},null,8,["headers"])])):f("",!0)])):f("",!0)}});const di=m(ui,[["__scopeId","data-v-2d98506c"]]),_i=n=>(z("data-v-c11df1f0"),n=n(),D(),n),vi={class:"container"},pi=_i(()=>u("div",{class:"aside-curtain"},null,-1)),hi={class:"aside-container"},fi={class:"aside-content"},mi={class:"content"},gi={class:"content-container"},yi={class:"main"},bi=g({__name:"VPDoc",setup(n){const e=te(),{hasSidebar:t,hasAside:o,leftAside:s}=F(),r=b(()=>e.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,p)=>{const _=U("Content");return a(),l("div",{class:B(["VPDoc",{"has-sidebar":i(t),"has-aside":i(o)}])},[c(d.$slots,"doc-top",{},void 0,!0),u("div",vi,[i(o)?(a(),l("div",{key:0,class:B(["aside",{"left-aside":i(s)}])},[pi,u("div",hi,[u("div",fi,[h(Ar,null,{"aside-top":v(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),u("div",mi,[u("div",gi,[c(d.$slots,"doc-before",{},void 0,!0),h(di),u("main",yi,[h(_,{class:B(["vp-doc",r.value])},null,8,["class"])]),h(ii,null,{"doc-footer-before":v(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}});const $i=m(bi,[["__scopeId","data-v-c11df1f0"]]),ue=n=>(z("data-v-e5bd6573"),n=n(),D(),n),ki={class:"NotFound"},Pi=ue(()=>u("p",{class:"code"},"404",-1)),Vi=ue(()=>u("h1",{class:"title"},"PAGE NOT FOUND",-1)),wi=ue(()=>u("div",{class:"divider"},null,-1)),Si=ue(()=>u("blockquote",{class:"quote"}," But if you don't change your direction, and if you keep looking, you may end up where you are heading. ",-1)),Li={class:"action"},Mi=["href"],Ci=g({__name:"NotFound",setup(n){const{site:e}=V(),{localeLinks:t}=ne({removeCurrent:!1}),o=S("/");return O(()=>{var r;const s=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");t.value.length&&(o.value=((r=t.value.find(({link:d})=>d.startsWith(s)))==null?void 0:r.link)||t.value[0].link)}),(s,r)=>(a(),l("div",ki,[Pi,Vi,wi,Si,u("div",Li,[u("a",{class:"link",href:i(he)(o.value),"aria-label":"go to home"}," Take me home ",8,Mi)])]))}});const Ii=m(Ci,[["__scopeId","data-v-e5bd6573"]]),Bi=g({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:o}=F();return(s,r)=>(a(),l("div",{class:B(["VPContent",{"has-sidebar":i(o),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(s.$slots,"not-found",{key:0},()=>[h(Ii)],!0):i(t).layout==="page"?(a(),y(xa,{key:1},{"page-top":v(()=>[c(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),y(br,{key:2},{"home-hero-before":v(()=>[c(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):(a(),y($i,{key:3},{"doc-top":v(()=>[c(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[c(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[c(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[c(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[c(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const Ti=m(Bi,[["__scopeId","data-v-91952ce3"]]),Ni={class:"container"},Ai=["innerHTML"],xi=["innerHTML"],Ei=g({__name:"VPFooter",setup(n){const{theme:e}=V(),{hasSidebar:t}=F();return(o,s)=>i(e).footer?(a(),l("footer",{key:0,class:B(["VPFooter",{"has-sidebar":i(t)}])},[u("div",Ni,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,Ai)):f("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,xi)):f("",!0)])],2)):f("",!0)}});const Hi=m(Ei,[["__scopeId","data-v-8024ae35"]]),zi={key:0,class:"Layout"},Di=g({__name:"Layout",setup(n){const{isOpen:e,open:t,close:o}=F(),s=te();K(()=>s.path,o),Bt(e,o),oe("close-sidebar",o),oe("is-sidebar-open",e);const{frontmatter:r}=V(),d=yt(),p=b(()=>!!d["home-hero-image"]);return oe("hero-image-slot-exists",p),(_,$)=>{const T=U("Content");return i(r).layout!==!1?(a(),l("div",zi,[c(_.$slots,"layout-top",{},void 0,!0),h(At),h(Ht,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),h(qo,null,{"nav-bar-title-before":v(()=>[c(_.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(_.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(_.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(_.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[c(_.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(_.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),h(ya,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),h(Ba,{open:i(e)},{"sidebar-nav-before":v(()=>[c(_.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[c(_.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(Ti,null,{"page-top":v(()=>[c(_.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(_.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[c(_.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[c(_.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(_.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(_.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(_.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(_.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(_.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[c(_.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(_.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(_.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[c(_.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(_.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[c(_.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(_.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(_.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(_.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(_.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(_.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(Hi),c(_.$slots,"layout-bottom",{},void 0,!0)])):(a(),y(T,{key:1}))}}});const Fi=m(Di,[["__scopeId","data-v-bffce215"]]);const Gi={Layout:Fi,enhanceApp:({app:n})=>{n.component("Badge",$t)}};export{Gi as t,V as u}; diff --git a/docs/assets/core.md.6ea96005.js b/docs/assets/core.md.f6d4ea4c.js similarity index 93% rename from docs/assets/core.md.6ea96005.js rename to docs/assets/core.md.f6d4ea4c.js index 45d12e73..787d026b 100644 --- a/docs/assets/core.md.6ea96005.js +++ b/docs/assets/core.md.f6d4ea4c.js @@ -1 +1 @@ -import{_ as t,o as e,c as a,R as r}from"./chunks/framework.fed62f4c.js";const _=JSON.parse('{"title":"Core","description":"","frontmatter":{},"headers":[],"relativePath":"core.md","filePath":"core.md","lastUpdated":1666705294000}'),o={name:"core.md"},s=r('

Core

This page is about the PeyrSharp.Core module.

Compatibility

The PeyrSharp.Core module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Namespaces

The Core namespace contains other namespaces:

Classes

',10),l=[s];function i(d,h,c,n,m,p){return e(),a("div",null,l)}const f=t(o,[["render",i]]);export{_ as __pageData,f as default}; +import{_ as t,o as e,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const _=JSON.parse('{"title":"Core","description":"","frontmatter":{},"headers":[],"relativePath":"core.md","filePath":"core.md","lastUpdated":1666705294000}'),o={name:"core.md"},s=r('

Core

This page is about the PeyrSharp.Core module.

Compatibility

The PeyrSharp.Core module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Namespaces

The Core namespace contains other namespaces:

Classes

',10),l=[s];function i(d,h,c,n,m,p){return e(),a("div",null,l)}const f=t(o,[["render",i]]);export{_ as __pageData,f as default}; diff --git a/docs/assets/core.md.6ea96005.lean.js b/docs/assets/core.md.f6d4ea4c.lean.js similarity index 66% rename from docs/assets/core.md.6ea96005.lean.js rename to docs/assets/core.md.f6d4ea4c.lean.js index 212d7943..40dc2fb2 100644 --- a/docs/assets/core.md.6ea96005.lean.js +++ b/docs/assets/core.md.f6d4ea4c.lean.js @@ -1 +1 @@ -import{_ as t,o as e,c as a,R as r}from"./chunks/framework.fed62f4c.js";const _=JSON.parse('{"title":"Core","description":"","frontmatter":{},"headers":[],"relativePath":"core.md","filePath":"core.md","lastUpdated":1666705294000}'),o={name:"core.md"},s=r("",10),l=[s];function i(d,h,c,n,m,p){return e(),a("div",null,l)}const f=t(o,[["render",i]]);export{_ as __pageData,f as default}; +import{_ as t,o as e,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const _=JSON.parse('{"title":"Core","description":"","frontmatter":{},"headers":[],"relativePath":"core.md","filePath":"core.md","lastUpdated":1666705294000}'),o={name:"core.md"},s=r("",10),l=[s];function i(d,h,c,n,m,p){return e(),a("div",null,l)}const f=t(o,[["render",i]]);export{_ as __pageData,f as default}; diff --git a/docs/assets/core_converters.md.cabb3edc.js b/docs/assets/core_converters.md.6208e554.js similarity index 94% rename from docs/assets/core_converters.md.cabb3edc.js rename to docs/assets/core_converters.md.6208e554.js index 33c33ff4..f2ee4c95 100644 --- a/docs/assets/core_converters.md.cabb3edc.js +++ b/docs/assets/core_converters.md.6208e554.js @@ -1 +1 @@ -import{_ as e,o as t,c as r,R as a}from"./chunks/framework.fed62f4c.js";const _=JSON.parse('{"title":"Converters","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters.md","filePath":"core/converters.md","lastUpdated":1666629081000}'),o={name:"core/converters.md"},s=a('

Converters

This page is about the Converters namespace available in PeyrSharp.Core. You can find here all of its classes.

Compatibility

The Converters namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

',7),l=[s];function c(i,n,h,d,m,p){return t(),r("div",null,l)}const v=e(o,[["render",c]]);export{_ as __pageData,v as default}; +import{_ as e,o as t,c as r,U as a}from"./chunks/framework.1eef7d9b.js";const _=JSON.parse('{"title":"Converters","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters.md","filePath":"core/converters.md","lastUpdated":1666629081000}'),o={name:"core/converters.md"},s=a('

Converters

This page is about the Converters namespace available in PeyrSharp.Core. You can find here all of its classes.

Compatibility

The Converters namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

',7),l=[s];function c(i,n,h,d,m,p){return t(),r("div",null,l)}const v=e(o,[["render",c]]);export{_ as __pageData,v as default}; diff --git a/docs/assets/core_converters.md.cabb3edc.lean.js b/docs/assets/core_converters.md.6208e554.lean.js similarity index 69% rename from docs/assets/core_converters.md.cabb3edc.lean.js rename to docs/assets/core_converters.md.6208e554.lean.js index 90af1f50..fc8cecc0 100644 --- a/docs/assets/core_converters.md.cabb3edc.lean.js +++ b/docs/assets/core_converters.md.6208e554.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as r,R as a}from"./chunks/framework.fed62f4c.js";const _=JSON.parse('{"title":"Converters","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters.md","filePath":"core/converters.md","lastUpdated":1666629081000}'),o={name:"core/converters.md"},s=a("",7),l=[s];function c(i,n,h,d,m,p){return t(),r("div",null,l)}const v=e(o,[["render",c]]);export{_ as __pageData,v as default}; +import{_ as e,o as t,c as r,U as a}from"./chunks/framework.1eef7d9b.js";const _=JSON.parse('{"title":"Converters","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters.md","filePath":"core/converters.md","lastUpdated":1666629081000}'),o={name:"core/converters.md"},s=a("",7),l=[s];function c(i,n,h,d,m,p){return t(),r("div",null,l)}const v=e(o,[["render",c]]);export{_ as __pageData,v as default}; diff --git a/docs/assets/core_converters_angle.md.2f3b013f.js b/docs/assets/core_converters_angle.md.3818ea53.js similarity index 97% rename from docs/assets/core_converters_angle.md.2f3b013f.js rename to docs/assets/core_converters_angle.md.3818ea53.js index c19de986..7806adfc 100644 --- a/docs/assets/core_converters_angle.md.2f3b013f.js +++ b/docs/assets/core_converters_angle.md.3818ea53.js @@ -1,4 +1,4 @@ -import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const b=JSON.parse('{"title":"Angle","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/angle.md","filePath":"core/converters/angle.md","lastUpdated":1666626451000}'),o={name:"core/converters/angle.md"},n=s(`

Angle

This page is about the Angle class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Angle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

DegreesToRadians(degrees)

Definition

Converts degrees to radians. Returns a double value.

Arguments

TypeNameMeaning
doubledegreesNumber of degrees to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const b=JSON.parse('{"title":"Angle","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/angle.md","filePath":"core/converters/angle.md","lastUpdated":1666626451000}'),o={name:"core/converters/angle.md"},n=s(`

Angle

This page is about the Angle class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Angle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

DegreesToRadians(degrees)

Definition

Converts degrees to radians. Returns a double value.

Arguments

TypeNameMeaning
doubledegreesNumber of degrees to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double radians = Angle.DegreesToRadians(90);
 // radians = 1.5707963271535559

RadiansToDegrees(radians)

Definition

Converts radians to degrees. Returns a double value.

Arguments

TypeNameMeaning
doubleradiansNumber of radians to convert.

Usage

c#
using PeyrSharp.Core.Converters;
diff --git a/docs/assets/core_converters_angle.md.2f3b013f.lean.js b/docs/assets/core_converters_angle.md.3818ea53.lean.js
similarity index 70%
rename from docs/assets/core_converters_angle.md.2f3b013f.lean.js
rename to docs/assets/core_converters_angle.md.3818ea53.lean.js
index d03b6425..c307013a 100644
--- a/docs/assets/core_converters_angle.md.2f3b013f.lean.js
+++ b/docs/assets/core_converters_angle.md.3818ea53.lean.js
@@ -1 +1 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const b=JSON.parse('{"title":"Angle","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/angle.md","filePath":"core/converters/angle.md","lastUpdated":1666626451000}'),o={name:"core/converters/angle.md"},n=s("",21),r=[n];function l(d,i,c,p,h,g){return a(),t("div",null,r)}const m=e(o,[["render",l]]);export{b as __pageData,m as default};
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const b=JSON.parse('{"title":"Angle","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/angle.md","filePath":"core/converters/angle.md","lastUpdated":1666626451000}'),o={name:"core/converters/angle.md"},n=s("",21),r=[n];function l(d,i,c,p,h,g){return a(),t("div",null,r)}const m=e(o,[["render",l]]);export{b as __pageData,m as default};
diff --git a/docs/assets/core_converters_colors_hex.md.1be7009e.js b/docs/assets/core_converters_colors_hex.md.a4ef033c.js
similarity index 98%
rename from docs/assets/core_converters_colors_hex.md.1be7009e.js
rename to docs/assets/core_converters_colors_hex.md.a4ef033c.js
index 2439b412..3538bb51 100644
--- a/docs/assets/core_converters_colors_hex.md.1be7009e.js
+++ b/docs/assets/core_converters_colors_hex.md.a4ef033c.js
@@ -1,4 +1,4 @@
-import{_ as a,o as e,c as s,R as o}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"HEX","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/hex.md","filePath":"core/converters/colors/hex.md","lastUpdated":1666628903000}'),t={name:"core/converters/colors/hex.md"},n=o(`

HEX

This page is about the HEX class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The HEX class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

HEX(hex)

Initializes a hexadecimal class from a hexadecimal value.

Arguments

TypeNameMeaning
stringhexThe hexadecimal value (with or without #).

WARNING

If you specify a non-hexadecimal value, a HEXInvalidValueException will be thrown.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as a,o as e,c as s,U as o}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"HEX","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/hex.md","filePath":"core/converters/colors/hex.md","lastUpdated":1666628903000}'),t={name:"core/converters/colors/hex.md"},n=o(`

HEX

This page is about the HEX class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The HEX class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

HEX(hex)

Initializes a hexadecimal class from a hexadecimal value.

Arguments

TypeNameMeaning
stringhexThe hexadecimal value (with or without #).

WARNING

If you specify a non-hexadecimal value, a HEXInvalidValueException will be thrown.

Usage

c#
using PeyrSharp.Core.Converters;
 
 HEX hex = new("#FF0A17");

Methods

ToRgb()

Definition

Converts the HEX color to RGB. Returns a RGB class.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Core.Converters;
 
diff --git a/docs/assets/core_converters_colors_hex.md.1be7009e.lean.js b/docs/assets/core_converters_colors_hex.md.a4ef033c.lean.js
similarity index 71%
rename from docs/assets/core_converters_colors_hex.md.1be7009e.lean.js
rename to docs/assets/core_converters_colors_hex.md.a4ef033c.lean.js
index ea196fd6..6d94b07d 100644
--- a/docs/assets/core_converters_colors_hex.md.1be7009e.lean.js
+++ b/docs/assets/core_converters_colors_hex.md.a4ef033c.lean.js
@@ -1 +1 @@
-import{_ as a,o as e,c as s,R as o}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"HEX","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/hex.md","filePath":"core/converters/colors/hex.md","lastUpdated":1666628903000}'),t={name:"core/converters/colors/hex.md"},n=o("",33),l=[n];function r(c,p,i,h,d,u){return e(),s("div",null,l)}const F=a(t,[["render",r]]);export{C as __pageData,F as default};
+import{_ as a,o as e,c as s,U as o}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"HEX","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/hex.md","filePath":"core/converters/colors/hex.md","lastUpdated":1666628903000}'),t={name:"core/converters/colors/hex.md"},n=o("",33),l=[n];function r(c,p,i,h,d,u){return e(),s("div",null,l)}const F=a(t,[["render",r]]);export{C as __pageData,F as default};
diff --git a/docs/assets/core_converters_colors_hsv.md.8a2445f1.js b/docs/assets/core_converters_colors_hsv.md.34af8b4a.js
similarity index 98%
rename from docs/assets/core_converters_colors_hsv.md.8a2445f1.js
rename to docs/assets/core_converters_colors_hsv.md.34af8b4a.js
index 3b27c6d3..d81bea2f 100644
--- a/docs/assets/core_converters_colors_hsv.md.8a2445f1.js
+++ b/docs/assets/core_converters_colors_hsv.md.34af8b4a.js
@@ -1,3 +1,3 @@
-import{_ as a,o as e,c as t,R as o}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"HSV","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/hsv.md","filePath":"core/converters/colors/hsv.md","lastUpdated":1666628914000}'),s={name:"core/converters/colors/hsv.md"},n=o(`

HSV

This page is about the HSV class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The HSV class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

HSV(hue, saturation, value)

Definition

Initializes a HSV color from its hue, saturation, and value.

Arguments

TypeNameMeaning
inthueThe Hue of the color.
intsaturationThe saturation percentage.
intvalueThe value/brightness percentage.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as a,o as e,c as t,U as o}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"HSV","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/hsv.md","filePath":"core/converters/colors/hsv.md","lastUpdated":1666628914000}'),s={name:"core/converters/colors/hsv.md"},n=o(`

HSV

This page is about the HSV class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The HSV class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

HSV(hue, saturation, value)

Definition

Initializes a HSV color from its hue, saturation, and value.

Arguments

TypeNameMeaning
inthueThe Hue of the color.
intsaturationThe saturation percentage.
intvalueThe value/brightness percentage.

Usage

c#
using PeyrSharp.Core.Converters;
 
 HSV hsv = new(50, 75, 100);

Properties

Hue

Definition

c#
public int Hue { get; init; }

The Hue property contains the hue of the HSV color. You can only get this property.

Saturation

Definition

c#
public int Saturation { get; init; }

The Value property contains the saturation percentage of the HSV color. You can only get this property.

Value

Definition

c#
public int Value { get; init; }

The Value property contains the value/brightness percentage of the HSV color. You can only get this property.

`,26),r=[n];function l(i,c,p,d,h,u){return e(),t("div",null,r)}const D=a(s,[["render",l]]);export{C as __pageData,D as default}; diff --git a/docs/assets/core_converters_colors_hsv.md.8a2445f1.lean.js b/docs/assets/core_converters_colors_hsv.md.34af8b4a.lean.js similarity index 71% rename from docs/assets/core_converters_colors_hsv.md.8a2445f1.lean.js rename to docs/assets/core_converters_colors_hsv.md.34af8b4a.lean.js index 1825e532..86bd184c 100644 --- a/docs/assets/core_converters_colors_hsv.md.8a2445f1.lean.js +++ b/docs/assets/core_converters_colors_hsv.md.34af8b4a.lean.js @@ -1 +1 @@ -import{_ as a,o as e,c as t,R as o}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"HSV","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/hsv.md","filePath":"core/converters/colors/hsv.md","lastUpdated":1666628914000}'),s={name:"core/converters/colors/hsv.md"},n=o("",26),r=[n];function l(i,c,p,d,h,u){return e(),t("div",null,r)}const D=a(s,[["render",l]]);export{C as __pageData,D as default}; +import{_ as a,o as e,c as t,U as o}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"HSV","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/hsv.md","filePath":"core/converters/colors/hsv.md","lastUpdated":1666628914000}'),s={name:"core/converters/colors/hsv.md"},n=o("",26),r=[n];function l(i,c,p,d,h,u){return e(),t("div",null,r)}const D=a(s,[["render",l]]);export{C as __pageData,D as default}; diff --git a/docs/assets/core_converters_colors_rgb.md.ff4910bf.js b/docs/assets/core_converters_colors_rgb.md.35de48d5.js similarity index 98% rename from docs/assets/core_converters_colors_rgb.md.ff4910bf.js rename to docs/assets/core_converters_colors_rgb.md.35de48d5.js index f6d3c906..09194cc0 100644 --- a/docs/assets/core_converters_colors_rgb.md.ff4910bf.js +++ b/docs/assets/core_converters_colors_rgb.md.35de48d5.js @@ -1,4 +1,4 @@ -import{_ as a,o as s,c as e,R as o}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"RGB","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/rgb.md","filePath":"core/converters/colors/rgb.md","lastUpdated":1666628921000}'),t={name:"core/converters/colors/rgb.md"},n=o(`

RGB

This page is about the RGB class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The RGB class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

RGB(color)

Definition

Initializes a RGB class from a System.Drawing.Color. Returns a RGB class.

Arguments

TypeNameMeaning
ColorcolorThe RGB color.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as a,o as s,c as e,U as o}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"RGB","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/rgb.md","filePath":"core/converters/colors/rgb.md","lastUpdated":1666628921000}'),t={name:"core/converters/colors/rgb.md"},n=o(`

RGB

This page is about the RGB class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The RGB class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

RGB(color)

Definition

Initializes a RGB class from a System.Drawing.Color. Returns a RGB class.

Arguments

TypeNameMeaning
ColorcolorThe RGB color.

Usage

c#
using PeyrSharp.Core.Converters;
 using System.Drawing;
 
 RGB rgb = new(Color.FromArgb(255, 150, 120));

RGB(r, g, b)

Definition

Initializes a RGB class from its r, g and b values. Returns a RGB class.

Arguments

TypeNameMeaning
intrRed.
intgGreen.
intbBlue.

WARNING

If you specify a value that is not between 0 and 255, a RGBInvalidValueException will be thrown.

Usage

c#
using PeyrSharp.Core.Converters;
diff --git a/docs/assets/core_converters_colors_rgb.md.ff4910bf.lean.js b/docs/assets/core_converters_colors_rgb.md.35de48d5.lean.js
similarity index 71%
rename from docs/assets/core_converters_colors_rgb.md.ff4910bf.lean.js
rename to docs/assets/core_converters_colors_rgb.md.35de48d5.lean.js
index bbf34b85..a6024279 100644
--- a/docs/assets/core_converters_colors_rgb.md.ff4910bf.lean.js
+++ b/docs/assets/core_converters_colors_rgb.md.35de48d5.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as o}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"RGB","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/rgb.md","filePath":"core/converters/colors/rgb.md","lastUpdated":1666628921000}'),t={name:"core/converters/colors/rgb.md"},n=o("",41),r=[n];function l(c,p,i,d,h,C){return s(),e("div",null,r)}const F=a(t,[["render",l]]);export{u as __pageData,F as default};
+import{_ as a,o as s,c as e,U as o}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"RGB","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/colors/rgb.md","filePath":"core/converters/colors/rgb.md","lastUpdated":1666628921000}'),t={name:"core/converters/colors/rgb.md"},n=o("",41),r=[n];function l(c,p,i,d,h,C){return s(),e("div",null,r)}const F=a(t,[["render",l]]);export{u as __pageData,F as default};
diff --git a/docs/assets/core_converters_distances.md.c9199855.js b/docs/assets/core_converters_distances.md.a2fa2889.js
similarity index 98%
rename from docs/assets/core_converters_distances.md.c9199855.js
rename to docs/assets/core_converters_distances.md.a2fa2889.js
index 0584c469..d81eda0b 100644
--- a/docs/assets/core_converters_distances.md.c9199855.js
+++ b/docs/assets/core_converters_distances.md.a2fa2889.js
@@ -1,4 +1,4 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Distances","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/distances.md","filePath":"core/converters/distances.md","lastUpdated":1666511609000}'),o={name:"core/converters/distances.md"},n=s(`

Distances

This page is about the Distances class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Distances class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

MilesToKm(miles)

Definition

Converts miles to kilometers. Returns a double value.

Arguments

TypeNameMeaning
doublemilesNumber of mile(s) to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Distances","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/distances.md","filePath":"core/converters/distances.md","lastUpdated":1666511609000}'),o={name:"core/converters/distances.md"},n=s(`

Distances

This page is about the Distances class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Distances class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

MilesToKm(miles)

Definition

Converts miles to kilometers. Returns a double value.

Arguments

TypeNameMeaning
doublemilesNumber of mile(s) to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double km = Distances.MilesToKm(10);
 // km = 16.09344

KmToMiles(km)

Definition

Converts kilometers to miles. Returns a double value.

Arguments

TypeNameMeaning
doublekilometersNumber of kilometers(s) to convert.

Usage

c#
using PeyrSharp.Core.Converters;
diff --git a/docs/assets/core_converters_distances.md.c9199855.lean.js b/docs/assets/core_converters_distances.md.a2fa2889.lean.js
similarity index 71%
rename from docs/assets/core_converters_distances.md.c9199855.lean.js
rename to docs/assets/core_converters_distances.md.a2fa2889.lean.js
index 783bb413..043f9c9f 100644
--- a/docs/assets/core_converters_distances.md.c9199855.lean.js
+++ b/docs/assets/core_converters_distances.md.a2fa2889.lean.js
@@ -1 +1 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Distances","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/distances.md","filePath":"core/converters/distances.md","lastUpdated":1666511609000}'),o={name:"core/converters/distances.md"},n=s("",35),l=[n];function r(i,c,d,p,h,m){return a(),t("div",null,l)}const b=e(o,[["render",r]]);export{y as __pageData,b as default};
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Distances","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/distances.md","filePath":"core/converters/distances.md","lastUpdated":1666511609000}'),o={name:"core/converters/distances.md"},n=s("",35),l=[n];function r(i,c,d,p,h,m){return a(),t("div",null,l)}const b=e(o,[["render",r]]);export{y as __pageData,b as default};
diff --git a/docs/assets/core_converters_energies.md.52cf3f4a.js b/docs/assets/core_converters_energies.md.917d6be6.js
similarity index 97%
rename from docs/assets/core_converters_energies.md.52cf3f4a.js
rename to docs/assets/core_converters_energies.md.917d6be6.js
index 28a3870d..c5d71b12 100644
--- a/docs/assets/core_converters_energies.md.52cf3f4a.js
+++ b/docs/assets/core_converters_energies.md.917d6be6.js
@@ -1,4 +1,4 @@
-import{_ as e,o as a,c as s,R as o}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Energies","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/energies.md","filePath":"core/converters/energies.md","lastUpdated":1678016186000}'),t={name:"core/converters/energies.md"},n=o(`

Energies

This page is about the Energies class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Energies class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

CaloriesToJoules(calories)

Definition

Converts calories to joules.

Arguments

TypeNameMeaning
doublecaloriesThe amount of energy in calories to be converted.

Returns

The equivalent amount of energy in joules.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as e,o as a,c as s,U as o}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Energies","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/energies.md","filePath":"core/converters/energies.md","lastUpdated":1678016186000}'),t={name:"core/converters/energies.md"},n=o(`

Energies

This page is about the Energies class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Energies class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

CaloriesToJoules(calories)

Definition

Converts calories to joules.

Arguments

TypeNameMeaning
doublecaloriesThe amount of energy in calories to be converted.

Returns

The equivalent amount of energy in joules.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double calories = 100.0;
 double joules = Energies.CaloriesToJoules(calories);

JoulesToCalories(joules)

Definition

Converts joules to calories.

Arguments

TypeNameMeaning
doublejoulesThe amount of energy in joules.

Returns

The equivalent amount of energy in calories.

Usage

c#
using PeyrSharp.Core.Converters;
diff --git a/docs/assets/core_converters_energies.md.52cf3f4a.lean.js b/docs/assets/core_converters_energies.md.917d6be6.lean.js
similarity index 71%
rename from docs/assets/core_converters_energies.md.52cf3f4a.lean.js
rename to docs/assets/core_converters_energies.md.917d6be6.lean.js
index c8f0f7f6..0890b79b 100644
--- a/docs/assets/core_converters_energies.md.52cf3f4a.lean.js
+++ b/docs/assets/core_converters_energies.md.917d6be6.lean.js
@@ -1 +1 @@
-import{_ as e,o as a,c as s,R as o}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Energies","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/energies.md","filePath":"core/converters/energies.md","lastUpdated":1678016186000}'),t={name:"core/converters/energies.md"},n=o("",25),l=[n];function r(i,c,p,d,h,u){return a(),s("div",null,l)}const b=e(t,[["render",r]]);export{y as __pageData,b as default};
+import{_ as e,o as a,c as s,U as o}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Energies","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/energies.md","filePath":"core/converters/energies.md","lastUpdated":1678016186000}'),t={name:"core/converters/energies.md"},n=o("",25),l=[n];function r(i,c,p,d,h,u){return a(),s("div",null,l)}const b=e(t,[["render",r]]);export{y as __pageData,b as default};
diff --git a/docs/assets/core_converters_masses.md.86e09b8b.js b/docs/assets/core_converters_masses.md.39e62d78.js
similarity index 97%
rename from docs/assets/core_converters_masses.md.86e09b8b.js
rename to docs/assets/core_converters_masses.md.39e62d78.js
index 495e2647..0d691788 100644
--- a/docs/assets/core_converters_masses.md.86e09b8b.js
+++ b/docs/assets/core_converters_masses.md.39e62d78.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as t}from"./chunks/framework.fed62f4c.js";const g=JSON.parse('{"title":"Masses","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/masses.md","filePath":"core/converters/masses.md","lastUpdated":1666511609000}'),o={name:"core/converters/masses.md"},n=t(`

Masses

This page is about the Masses class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Masses class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

PoundsToKilograms(pounds)

Definition

Converts pounds to kilograms. Returns a double value.

Arguments

TypeNameMeaning
doublepoundsNumber of pounds to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as a,o as s,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const g=JSON.parse('{"title":"Masses","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/masses.md","filePath":"core/converters/masses.md","lastUpdated":1666511609000}'),o={name:"core/converters/masses.md"},n=t(`

Masses

This page is about the Masses class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Masses class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

PoundsToKilograms(pounds)

Definition

Converts pounds to kilograms. Returns a double value.

Arguments

TypeNameMeaning
doublepoundsNumber of pounds to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double kg = Masses.PoundsToKilograms(10);
 // kg = 4.535923703803784

KilogramsToPounds(kilograms)

Definition

Converts kilograms to pounds. Returns a double value.

Arguments

TypeNameMeaning
doublekilogramsNumber of kilograms to convert.

Usage

c#
using PeyrSharp.Core.Converters;
diff --git a/docs/assets/core_converters_masses.md.86e09b8b.lean.js b/docs/assets/core_converters_masses.md.39e62d78.lean.js
similarity index 70%
rename from docs/assets/core_converters_masses.md.86e09b8b.lean.js
rename to docs/assets/core_converters_masses.md.39e62d78.lean.js
index 3dfae0d0..04c4e062 100644
--- a/docs/assets/core_converters_masses.md.86e09b8b.lean.js
+++ b/docs/assets/core_converters_masses.md.39e62d78.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as t}from"./chunks/framework.fed62f4c.js";const g=JSON.parse('{"title":"Masses","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/masses.md","filePath":"core/converters/masses.md","lastUpdated":1666511609000}'),o={name:"core/converters/masses.md"},n=t("",21),r=[n];function l(d,i,c,p,h,u){return s(),e("div",null,r)}const b=a(o,[["render",l]]);export{g as __pageData,b as default};
+import{_ as a,o as s,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const g=JSON.parse('{"title":"Masses","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/masses.md","filePath":"core/converters/masses.md","lastUpdated":1666511609000}'),o={name:"core/converters/masses.md"},n=t("",21),r=[n];function l(d,i,c,p,h,u){return s(),e("div",null,r)}const b=a(o,[["render",l]]);export{g as __pageData,b as default};
diff --git a/docs/assets/core_converters_speeds.md.c8cee65d.js b/docs/assets/core_converters_speeds.md.a110c0de.js
similarity index 99%
rename from docs/assets/core_converters_speeds.md.c8cee65d.js
rename to docs/assets/core_converters_speeds.md.a110c0de.js
index 3169d9e9..8620de69 100644
--- a/docs/assets/core_converters_speeds.md.c8cee65d.js
+++ b/docs/assets/core_converters_speeds.md.a110c0de.js
@@ -1,4 +1,4 @@
-import{_ as e,o as s,c as a,R as o}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Speeds","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/speeds.md","filePath":"core/converters/speeds.md","lastUpdated":1683446294000}'),n={name:"core/converters/speeds.md"},t=o(`

Speeds

This page is about the Speeds class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Speeds class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

KnotsToKilometersPerHour(knots)

Definition

Converts knots to kilometers per hour.

Arguments

TypeNameMeaning
doubleknotsThe speed in knots.

Returns

The equivalent speed in kilometers per hour.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as e,o as s,c as a,U as o}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Speeds","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/speeds.md","filePath":"core/converters/speeds.md","lastUpdated":1683446294000}'),n={name:"core/converters/speeds.md"},t=o(`

Speeds

This page is about the Speeds class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Speeds class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

KnotsToKilometersPerHour(knots)

Definition

Converts knots to kilometers per hour.

Arguments

TypeNameMeaning
doubleknotsThe speed in knots.

Returns

The equivalent speed in kilometers per hour.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double speedInKnots = 20.0;
 double speedInKilometersPerHour = Speeds.KnotsToKilometersPerHour(speedInKnots);
diff --git a/docs/assets/core_converters_speeds.md.c8cee65d.lean.js b/docs/assets/core_converters_speeds.md.a110c0de.lean.js
similarity index 70%
rename from docs/assets/core_converters_speeds.md.c8cee65d.lean.js
rename to docs/assets/core_converters_speeds.md.a110c0de.lean.js
index 67fb7865..3b924ca4 100644
--- a/docs/assets/core_converters_speeds.md.c8cee65d.lean.js
+++ b/docs/assets/core_converters_speeds.md.a110c0de.lean.js
@@ -1 +1 @@
-import{_ as e,o as s,c as a,R as o}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Speeds","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/speeds.md","filePath":"core/converters/speeds.md","lastUpdated":1683446294000}'),n={name:"core/converters/speeds.md"},t=o("",95),r=[t];function l(p,i,c,d,h,u){return s(),a("div",null,r)}const y=e(n,[["render",l]]);export{F as __pageData,y as default};
+import{_ as e,o as s,c as a,U as o}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Speeds","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/speeds.md","filePath":"core/converters/speeds.md","lastUpdated":1683446294000}'),n={name:"core/converters/speeds.md"},t=o("",95),r=[t];function l(p,i,c,d,h,u){return s(),a("div",null,r)}const y=e(n,[["render",l]]);export{F as __pageData,y as default};
diff --git a/docs/assets/core_converters_storage.md.61854592.js b/docs/assets/core_converters_storage.md.2b813e83.js
similarity index 99%
rename from docs/assets/core_converters_storage.md.61854592.js
rename to docs/assets/core_converters_storage.md.2b813e83.js
index 0cf4e6df..eb4f44f5 100644
--- a/docs/assets/core_converters_storage.md.61854592.js
+++ b/docs/assets/core_converters_storage.md.2b813e83.js
@@ -1,4 +1,4 @@
-import{_ as a,o as e,c as t,R as s}from"./chunks/framework.fed62f4c.js";const b=JSON.parse('{"title":"Storage","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/storage.md","filePath":"core/converters/storage.md","lastUpdated":1683446294000}'),o={name:"core/converters/storage.md"},n=s(`

Storage

This page is about the Storage class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Storage class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

ToByte(value, storageUnit)

Definition

Converts a size (kb, mb, ...) to byte. Returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doublevalueThe value to convert.
StorageUnitsstorageUnitThe unit of the value. (ex: kilobyte, gigabyte...)

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as a,o as e,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const b=JSON.parse('{"title":"Storage","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/storage.md","filePath":"core/converters/storage.md","lastUpdated":1683446294000}'),o={name:"core/converters/storage.md"},n=s(`

Storage

This page is about the Storage class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Storage class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

ToByte(value, storageUnit)

Definition

Converts a size (kb, mb, ...) to byte. Returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doublevalueThe value to convert.
StorageUnitsstorageUnitThe unit of the value. (ex: kilobyte, gigabyte...)

Usage

c#
using PeyrSharp.Core.Converters;
 
 double byte = Storage.ToByte(1, StorageUnits.Kilobyte);
 // byte = 1000

ToKilobyte(value, storageUnit)

Definition

Converts a size (kb, mb, ...) to kilobyte. Returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doublevalueThe value to convert.
StorageUnitsstorageUnitThe unit of the value. (ex: byte, gigabyte...)

Usage

c#
using PeyrSharp.Core.Converters;
diff --git a/docs/assets/core_converters_storage.md.61854592.lean.js b/docs/assets/core_converters_storage.md.2b813e83.lean.js
similarity index 71%
rename from docs/assets/core_converters_storage.md.61854592.lean.js
rename to docs/assets/core_converters_storage.md.2b813e83.lean.js
index fc4fc889..065b32e5 100644
--- a/docs/assets/core_converters_storage.md.61854592.lean.js
+++ b/docs/assets/core_converters_storage.md.2b813e83.lean.js
@@ -1 +1 @@
-import{_ as a,o as e,c as t,R as s}from"./chunks/framework.fed62f4c.js";const b=JSON.parse('{"title":"Storage","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/storage.md","filePath":"core/converters/storage.md","lastUpdated":1683446294000}'),o={name:"core/converters/storage.md"},n=s("",69),l=[n];function r(i,c,p,d,h,u){return e(),t("div",null,l)}const g=a(o,[["render",r]]);export{b as __pageData,g as default};
+import{_ as a,o as e,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const b=JSON.parse('{"title":"Storage","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/storage.md","filePath":"core/converters/storage.md","lastUpdated":1683446294000}'),o={name:"core/converters/storage.md"},n=s("",69),l=[n];function r(i,c,p,d,h,u){return e(),t("div",null,l)}const g=a(o,[["render",r]]);export{b as __pageData,g as default};
diff --git a/docs/assets/core_converters_temperatures.md.7910007d.js b/docs/assets/core_converters_temperatures.md.86f399dd.js
similarity index 97%
rename from docs/assets/core_converters_temperatures.md.7910007d.js
rename to docs/assets/core_converters_temperatures.md.86f399dd.js
index 602d7fa6..cbd41d4e 100644
--- a/docs/assets/core_converters_temperatures.md.7910007d.js
+++ b/docs/assets/core_converters_temperatures.md.86f399dd.js
@@ -1,4 +1,4 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"Temperatures","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/temperatures.md","filePath":"core/converters/temperatures.md","lastUpdated":1666511987000}'),o={name:"core/converters/temperatures.md"},r=s(`

Temperatures

This page is about the Temperatures class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Temperatures class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

CelsiusToFahrenheit(celsius)

Definition

Converts Celsius (°C) to Fahrenheit (°F). Returns a double value.

Arguments

TypeNameMeaning
doublecelsiusNumber of Celsius to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"Temperatures","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/temperatures.md","filePath":"core/converters/temperatures.md","lastUpdated":1666511987000}'),o={name:"core/converters/temperatures.md"},r=s(`

Temperatures

This page is about the Temperatures class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Temperatures class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

CelsiusToFahrenheit(celsius)

Definition

Converts Celsius (°C) to Fahrenheit (°F). Returns a double value.

Arguments

TypeNameMeaning
doublecelsiusNumber of Celsius to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double f = Temperatures.CelsiusToFahrenheit(22);
 // f = 71.6

FahrenheitToCelsius(fahrenheit)

Definition

Converts Fahrenheit (°F) to Celsius (°C). Returns a double value.

Arguments

TypeNameMeaning
doublefahrenheitNumber of Fahrenheit to convert.

Usage

c#
using PeyrSharp.Core.Converters;
diff --git a/docs/assets/core_converters_temperatures.md.7910007d.lean.js b/docs/assets/core_converters_temperatures.md.86f399dd.lean.js
similarity index 72%
rename from docs/assets/core_converters_temperatures.md.7910007d.lean.js
rename to docs/assets/core_converters_temperatures.md.86f399dd.lean.js
index f0516cec..6fb2c2e9 100644
--- a/docs/assets/core_converters_temperatures.md.7910007d.lean.js
+++ b/docs/assets/core_converters_temperatures.md.86f399dd.lean.js
@@ -1 +1 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"Temperatures","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/temperatures.md","filePath":"core/converters/temperatures.md","lastUpdated":1666511987000}'),o={name:"core/converters/temperatures.md"},r=s("",21),n=[r];function l(i,c,h,d,p,u){return a(),t("div",null,n)}const b=e(o,[["render",l]]);export{C as __pageData,b as default};
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"Temperatures","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/temperatures.md","filePath":"core/converters/temperatures.md","lastUpdated":1666511987000}'),o={name:"core/converters/temperatures.md"},r=s("",21),n=[r];function l(i,c,h,d,p,u){return a(),t("div",null,n)}const b=e(o,[["render",l]]);export{C as __pageData,b as default};
diff --git a/docs/assets/core_converters_time.md.2b2ca65c.js b/docs/assets/core_converters_time.md.2241ec46.js
similarity index 99%
rename from docs/assets/core_converters_time.md.2b2ca65c.js
rename to docs/assets/core_converters_time.md.2241ec46.js
index 5c6b73ac..c6ec7489 100644
--- a/docs/assets/core_converters_time.md.2b2ca65c.js
+++ b/docs/assets/core_converters_time.md.2241ec46.js
@@ -1,4 +1,4 @@
-import{_ as e,o as s,c as a,R as t}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Time","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/time.md","filePath":"core/converters/time.md","lastUpdated":1670145438000}'),n={name:"core/converters/time.md"},o=t(`

Time

This page is about the Time class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Time class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

ToSeconds(d, timeUnits)

Definition

Converts a specified time unit value to seconds. For instance, you can convert days, hours or minutes to seconds. It returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doubledThe time unit to convert.
TimeUnitstimeUnitsThe unit of the time. (ex: minutes, hours...)

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as e,o as s,c as a,U as t}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Time","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/time.md","filePath":"core/converters/time.md","lastUpdated":1670145438000}'),n={name:"core/converters/time.md"},o=t(`

Time

This page is about the Time class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Time class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

ToSeconds(d, timeUnits)

Definition

Converts a specified time unit value to seconds. For instance, you can convert days, hours or minutes to seconds. It returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doubledThe time unit to convert.
TimeUnitstimeUnitsThe unit of the time. (ex: minutes, hours...)

Usage

c#
using PeyrSharp.Core.Converters;
 using PeyrSharp.Enums;
 
 double seconds = Time.ToSeconds(5, TimeUnits.Minutes);
diff --git a/docs/assets/core_converters_time.md.2b2ca65c.lean.js b/docs/assets/core_converters_time.md.2241ec46.lean.js
similarity index 70%
rename from docs/assets/core_converters_time.md.2b2ca65c.lean.js
rename to docs/assets/core_converters_time.md.2241ec46.lean.js
index 8123b378..108d1445 100644
--- a/docs/assets/core_converters_time.md.2b2ca65c.lean.js
+++ b/docs/assets/core_converters_time.md.2241ec46.lean.js
@@ -1 +1 @@
-import{_ as e,o as s,c as a,R as t}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Time","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/time.md","filePath":"core/converters/time.md","lastUpdated":1670145438000}'),n={name:"core/converters/time.md"},o=t("",55),l=[o];function i(r,c,p,d,h,u){return s(),a("div",null,l)}const D=e(n,[["render",i]]);export{y as __pageData,D as default};
+import{_ as e,o as s,c as a,U as t}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Time","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/time.md","filePath":"core/converters/time.md","lastUpdated":1670145438000}'),n={name:"core/converters/time.md"},o=t("",55),l=[o];function i(r,c,p,d,h,u){return s(),a("div",null,l)}const D=e(n,[["render",i]]);export{y as __pageData,D as default};
diff --git a/docs/assets/core_converters_volumes.md.ef4d4981.js b/docs/assets/core_converters_volumes.md.891b8531.js
similarity index 97%
rename from docs/assets/core_converters_volumes.md.ef4d4981.js
rename to docs/assets/core_converters_volumes.md.891b8531.js
index c8dd2a83..ef21e727 100644
--- a/docs/assets/core_converters_volumes.md.ef4d4981.js
+++ b/docs/assets/core_converters_volumes.md.891b8531.js
@@ -1,4 +1,4 @@
-import{_ as e,o as t,c as a,R as s}from"./chunks/framework.fed62f4c.js";const b=JSON.parse('{"title":"Volumes","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/volumes.md","filePath":"core/converters/volumes.md","lastUpdated":1666513063000}'),o={name:"core/converters/volumes.md"},n=s(`

Volumes

This page is about the Volumes class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Volumes class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

M3ToLitre(m3)

Definition

Converts Cubic Meters (m³) to Litre (L). Returns a double value.

Arguments

TypeNameMeaning
doublem3Number of cubic meters to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+import{_ as e,o as t,c as a,U as s}from"./chunks/framework.1eef7d9b.js";const b=JSON.parse('{"title":"Volumes","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/volumes.md","filePath":"core/converters/volumes.md","lastUpdated":1666513063000}'),o={name:"core/converters/volumes.md"},n=s(`

Volumes

This page is about the Volumes class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Volumes class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

M3ToLitre(m3)

Definition

Converts Cubic Meters (m³) to Litre (L). Returns a double value.

Arguments

TypeNameMeaning
doublem3Number of cubic meters to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double litre = Volumes.M3ToLitre(10);
 // litre = 10000

LitreToM3(m3)

Definition

Converts Litre (L) to Cubic Meters (m³). Returns a double value.

Arguments

TypeNameMeaning
doublelitreNumber of litres to convert.

Usage

c#
using PeyrSharp.Core.Converters;
diff --git a/docs/assets/core_converters_volumes.md.ef4d4981.lean.js b/docs/assets/core_converters_volumes.md.891b8531.lean.js
similarity index 71%
rename from docs/assets/core_converters_volumes.md.ef4d4981.lean.js
rename to docs/assets/core_converters_volumes.md.891b8531.lean.js
index 10cc4e3f..01c4a2c4 100644
--- a/docs/assets/core_converters_volumes.md.ef4d4981.lean.js
+++ b/docs/assets/core_converters_volumes.md.891b8531.lean.js
@@ -1 +1 @@
-import{_ as e,o as t,c as a,R as s}from"./chunks/framework.fed62f4c.js";const b=JSON.parse('{"title":"Volumes","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/volumes.md","filePath":"core/converters/volumes.md","lastUpdated":1666513063000}'),o={name:"core/converters/volumes.md"},n=s("",21),r=[n];function l(i,c,d,p,h,m){return t(),a("div",null,r)}const y=e(o,[["render",l]]);export{b as __pageData,y as default};
+import{_ as e,o as t,c as a,U as s}from"./chunks/framework.1eef7d9b.js";const b=JSON.parse('{"title":"Volumes","description":"","frontmatter":{},"headers":[],"relativePath":"core/converters/volumes.md","filePath":"core/converters/volumes.md","lastUpdated":1666513063000}'),o={name:"core/converters/volumes.md"},n=s("",21),r=[n];function l(i,c,d,p,h,m){return t(),a("div",null,r)}const y=e(o,[["render",l]]);export{b as __pageData,y as default};
diff --git a/docs/assets/core_crypt.md.515d31eb.js b/docs/assets/core_crypt.md.89a6c77c.js
similarity index 99%
rename from docs/assets/core_crypt.md.515d31eb.js
rename to docs/assets/core_crypt.md.89a6c77c.js
index b4471775..fa684309 100644
--- a/docs/assets/core_crypt.md.515d31eb.js
+++ b/docs/assets/core_crypt.md.89a6c77c.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as e,R as t}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Crypt","description":"","frontmatter":{},"headers":[],"relativePath":"core/crypt.md","filePath":"core/crypt.md","lastUpdated":1666705294000}'),n={name:"core/crypt.md"},o=t(`

Crypt

This page is about the Crypt class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Crypt class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

EncryptAes(str, key)

Definitions

Encrypts a string using AES encryption. Returns the encrypted content as a string as well.

Arguments

TypeNameMeaning
stringstrThe text to encrypt.
stringkeyThe encryption key. This is the same key that will be used to decrypt the text.

Usage

c#
using PeyrSharp.Core;
+import{_ as s,o as a,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Crypt","description":"","frontmatter":{},"headers":[],"relativePath":"core/crypt.md","filePath":"core/crypt.md","lastUpdated":1666705294000}'),n={name:"core/crypt.md"},o=t(`

Crypt

This page is about the Crypt class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Crypt class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

EncryptAes(str, key)

Definitions

Encrypts a string using AES encryption. Returns the encrypted content as a string as well.

Arguments

TypeNameMeaning
stringstrThe text to encrypt.
stringkeyThe encryption key. This is the same key that will be used to decrypt the text.

Usage

c#
using PeyrSharp.Core;
 
 string text = "Hello, world!";
 string encrypted = Crypt.EncryptAes(text, "password");
diff --git a/docs/assets/core_crypt.md.515d31eb.lean.js b/docs/assets/core_crypt.md.89a6c77c.lean.js
similarity index 68%
rename from docs/assets/core_crypt.md.515d31eb.lean.js
rename to docs/assets/core_crypt.md.89a6c77c.lean.js
index 82a230d1..de924ee1 100644
--- a/docs/assets/core_crypt.md.515d31eb.lean.js
+++ b/docs/assets/core_crypt.md.89a6c77c.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as e,R as t}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Crypt","description":"","frontmatter":{},"headers":[],"relativePath":"core/crypt.md","filePath":"core/crypt.md","lastUpdated":1666705294000}'),n={name:"core/crypt.md"},o=t("",49),r=[o];function l(p,c,d,y,i,D){return a(),e("div",null,r)}const C=s(n,[["render",l]]);export{F as __pageData,C as default};
+import{_ as s,o as a,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Crypt","description":"","frontmatter":{},"headers":[],"relativePath":"core/crypt.md","filePath":"core/crypt.md","lastUpdated":1666705294000}'),n={name:"core/crypt.md"},o=t("",49),r=[o];function l(p,c,d,y,i,D){return a(),e("div",null,r)}const C=s(n,[["render",l]]);export{F as __pageData,C as default};
diff --git a/docs/assets/core_guid-options.md.43a23994.js b/docs/assets/core_guid-options.md.c396b689.js
similarity index 98%
rename from docs/assets/core_guid-options.md.43a23994.js
rename to docs/assets/core_guid-options.md.c396b689.js
index 3dc889f5..21594a63 100644
--- a/docs/assets/core_guid-options.md.43a23994.js
+++ b/docs/assets/core_guid-options.md.c396b689.js
@@ -1,4 +1,4 @@
-import{_ as s,o as e,c as a,R as n}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"GuidOptions","description":"","frontmatter":{},"headers":[],"relativePath":"core/guid-options.md","filePath":"core/guid-options.md","lastUpdated":1665313649000}'),t={name:"core/guid-options.md"},o=n(`

GuidOptions

This page is about the GuidOptions class available in PeyrSharp.Core. You can find here all of its properties.

Compatibility

The GuidOptions class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

GuidOptions()

Definition

Initializes GuidOptions with default values for its properties.

Usage

c#
using PeyrSharp.Core;
+import{_ as s,o as e,c as a,U as n}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"GuidOptions","description":"","frontmatter":{},"headers":[],"relativePath":"core/guid-options.md","filePath":"core/guid-options.md","lastUpdated":1665313649000}'),t={name:"core/guid-options.md"},o=n(`

GuidOptions

This page is about the GuidOptions class available in PeyrSharp.Core. You can find here all of its properties.

Compatibility

The GuidOptions class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

GuidOptions()

Definition

Initializes GuidOptions with default values for its properties.

Usage

c#
using PeyrSharp.Core;
 
 var options = new GuidOptions();
 /*
diff --git a/docs/assets/core_guid-options.md.43a23994.lean.js b/docs/assets/core_guid-options.md.c396b689.lean.js
similarity index 70%
rename from docs/assets/core_guid-options.md.43a23994.lean.js
rename to docs/assets/core_guid-options.md.c396b689.lean.js
index 552a9c96..10370fd5 100644
--- a/docs/assets/core_guid-options.md.43a23994.lean.js
+++ b/docs/assets/core_guid-options.md.c396b689.lean.js
@@ -1 +1 @@
-import{_ as s,o as e,c as a,R as n}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"GuidOptions","description":"","frontmatter":{},"headers":[],"relativePath":"core/guid-options.md","filePath":"core/guid-options.md","lastUpdated":1665313649000}'),t={name:"core/guid-options.md"},o=n("",41),l=[o];function i(p,c,r,d,h,y){return e(),a("div",null,l)}const g=s(t,[["render",i]]);export{C as __pageData,g as default};
+import{_ as s,o as e,c as a,U as n}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"GuidOptions","description":"","frontmatter":{},"headers":[],"relativePath":"core/guid-options.md","filePath":"core/guid-options.md","lastUpdated":1665313649000}'),t={name:"core/guid-options.md"},o=n("",41),l=[o];function i(p,c,r,d,h,y){return e(),a("div",null,l)}const g=s(t,[["render",i]]);export{C as __pageData,g as default};
diff --git a/docs/assets/core_guid.md.859f4c0d.js b/docs/assets/core_guid.md.d249cd02.js
similarity index 98%
rename from docs/assets/core_guid.md.859f4c0d.js
rename to docs/assets/core_guid.md.d249cd02.js
index 3a7281be..ad5d2dde 100644
--- a/docs/assets/core_guid.md.859f4c0d.js
+++ b/docs/assets/core_guid.md.d249cd02.js
@@ -1,4 +1,4 @@
-import{_ as e,o as a,c as s,R as t}from"./chunks/framework.fed62f4c.js";const m=JSON.parse('{"title":"GuidGen","description":"","frontmatter":{},"headers":[],"relativePath":"core/guid.md","filePath":"core/guid.md","lastUpdated":1665311928000}'),n={name:"core/guid.md"},o=t(`

GuidGen

This page is about the GuidGen class available in PeyrSharp.Core. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The GuidGen class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Generate()

Definition

The Generate() method generates a Guid and will return it as a string.

INFO

This method has different overloads.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Core;
+import{_ as e,o as a,c as s,U as t}from"./chunks/framework.1eef7d9b.js";const m=JSON.parse('{"title":"GuidGen","description":"","frontmatter":{},"headers":[],"relativePath":"core/guid.md","filePath":"core/guid.md","lastUpdated":1665311928000}'),n={name:"core/guid.md"},o=t(`

GuidGen

This page is about the GuidGen class available in PeyrSharp.Core. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The GuidGen class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Generate()

Definition

The Generate() method generates a Guid and will return it as a string.

INFO

This method has different overloads.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Core;
 
 string guid = GuidGen.Generate();
 // guid = 7992acdd-1c9a-4985-92df-04599d560bbc (example)

Generate(length)

Definition

The Generate() method generates a Guid with a specific length and will return it as a string.

INFO

This method is an overload of Generate()

Arguments

This method has one argument:

TypeNameMeaning
intlengthThe length of the Guid.

WARNING

The length must be a number, otherwise, it will thrown a InvalidGuidLengthException.

Usage

c#
using PeyrSharp.Core;
diff --git a/docs/assets/core_guid.md.859f4c0d.lean.js b/docs/assets/core_guid.md.d249cd02.lean.js
similarity index 68%
rename from docs/assets/core_guid.md.859f4c0d.lean.js
rename to docs/assets/core_guid.md.d249cd02.lean.js
index a5d78296..4911bb9e 100644
--- a/docs/assets/core_guid.md.859f4c0d.lean.js
+++ b/docs/assets/core_guid.md.d249cd02.lean.js
@@ -1 +1 @@
-import{_ as e,o as a,c as s,R as t}from"./chunks/framework.fed62f4c.js";const m=JSON.parse('{"title":"GuidGen","description":"","frontmatter":{},"headers":[],"relativePath":"core/guid.md","filePath":"core/guid.md","lastUpdated":1665311928000}'),n={name:"core/guid.md"},o=t("",43),l=[o];function r(i,c,d,p,h,u){return a(),s("div",null,l)}const y=e(n,[["render",r]]);export{m as __pageData,y as default};
+import{_ as e,o as a,c as s,U as t}from"./chunks/framework.1eef7d9b.js";const m=JSON.parse('{"title":"GuidGen","description":"","frontmatter":{},"headers":[],"relativePath":"core/guid.md","filePath":"core/guid.md","lastUpdated":1665311928000}'),n={name:"core/guid.md"},o=t("",43),l=[o];function r(i,c,d,p,h,u){return a(),s("div",null,l)}const y=e(n,[["render",r]]);export{m as __pageData,y as default};
diff --git a/docs/assets/core_internet.md.777d4333.js b/docs/assets/core_internet.md.6a296b9a.js
similarity index 99%
rename from docs/assets/core_internet.md.777d4333.js
rename to docs/assets/core_internet.md.6a296b9a.js
index 9f21377b..ce3137f4 100644
--- a/docs/assets/core_internet.md.777d4333.js
+++ b/docs/assets/core_internet.md.6a296b9a.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,R as e}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Internet","description":"","frontmatter":{},"headers":[],"relativePath":"core/internet.md","filePath":"core/internet.md","lastUpdated":1683446294000}'),t={name:"core/internet.md"},o=e(`

Internet

This page is about the Internet class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Internet class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

IsAvailableAsync()

Definition

Checks if a connection to the Internet is available. Returns a bool value.

INFO

This method is asynchronous and awaitable.

Arguments

This method has no arguments

Usage

c#
using PeyrSharp.Core;
+import{_ as s,o as a,c as n,U as e}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Internet","description":"","frontmatter":{},"headers":[],"relativePath":"core/internet.md","filePath":"core/internet.md","lastUpdated":1683446294000}'),t={name:"core/internet.md"},o=e(`

Internet

This page is about the Internet class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Internet class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

IsAvailableAsync()

Definition

Checks if a connection to the Internet is available. Returns a bool value.

INFO

This method is asynchronous and awaitable.

Arguments

This method has no arguments

Usage

c#
using PeyrSharp.Core;
 
 public static async void Main()
 {
diff --git a/docs/assets/core_internet.md.777d4333.lean.js b/docs/assets/core_internet.md.6a296b9a.lean.js
similarity index 69%
rename from docs/assets/core_internet.md.777d4333.lean.js
rename to docs/assets/core_internet.md.6a296b9a.lean.js
index 5bb7f6c1..6107c29d 100644
--- a/docs/assets/core_internet.md.777d4333.lean.js
+++ b/docs/assets/core_internet.md.6a296b9a.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,R as e}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Internet","description":"","frontmatter":{},"headers":[],"relativePath":"core/internet.md","filePath":"core/internet.md","lastUpdated":1683446294000}'),t={name:"core/internet.md"},o=e("",71),l=[o];function p(r,c,i,d,y,D){return a(),n("div",null,l)}const u=s(t,[["render",p]]);export{F as __pageData,u as default};
+import{_ as s,o as a,c as n,U as e}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Internet","description":"","frontmatter":{},"headers":[],"relativePath":"core/internet.md","filePath":"core/internet.md","lastUpdated":1683446294000}'),t={name:"core/internet.md"},o=e("",71),l=[o];function p(r,c,i,d,y,D){return a(),n("div",null,l)}const u=s(t,[["render",p]]);export{F as __pageData,u as default};
diff --git a/docs/assets/core_json-helper.md.e45838d6.js b/docs/assets/core_json-helper.md.e45838d6.js
new file mode 100644
index 00000000..e2c31937
--- /dev/null
+++ b/docs/assets/core_json-helper.md.e45838d6.js
@@ -0,0 +1,26 @@
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"JsonHelper","description":"","frontmatter":{},"headers":[],"relativePath":"core/json-helper.md","filePath":"core/json-helper.md","lastUpdated":1690620914000}'),o={name:"core/json-helper.md"},t=n(`

JsonHelper

This page is about the JsonHelper class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The JsonHelper class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

LoadFromJson<T>(fileName)

Definition

The LoadFromJson<T>() method loads an object from a JSON file.

Type Parameters

TypeMeaning
TThe type of the object to save.

Arguments

TypeNameMeaning
stringfileNameThe name of the file to load from.

Returns

The object loaded from the file.

Usage

c#
using PeyrSharp.Core;
+using System.IO;
+using System.Text.Json;
+
+// Load the person from the JSON file
+Person person = JsonHelper.LoadFromJson<Person>("person.json");
+
+// Print the person's name and age
+Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");

SaveAsJson<T>(obj, fileName)

Definition

The SaveAsJson() method saves an object as a JSON file.

Type Parameters

TypeMeaning
TThe type of the object to save.

Arguments

TypeNameMeaning
TobjThe object to save.
stringfileNameThe name of the file to save to.

Usage

c#
using PeyrSharp.Core;
+using System.IO;
+using System.Text.Json;
+
+public static void Main()
+{
+    // Create an object to save
+    MyObject obj = new MyObject();
+
+    // Save the object as a JSON file
+    JsonHelper.SaveAsJson(obj, "output.json");
+}
+
+public class MyObject
+{
+    public string Name { get; set; }
+    public int Age { get; set; }
+}
`,27),l=[t];function p(r,c,i,d,y,h){return a(),e("div",null,l)}const C=s(o,[["render",p]]);export{F as __pageData,C as default}; diff --git a/docs/assets/core_json-helper.md.e45838d6.lean.js b/docs/assets/core_json-helper.md.e45838d6.lean.js new file mode 100644 index 00000000..286f6361 --- /dev/null +++ b/docs/assets/core_json-helper.md.e45838d6.lean.js @@ -0,0 +1 @@ +import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"JsonHelper","description":"","frontmatter":{},"headers":[],"relativePath":"core/json-helper.md","filePath":"core/json-helper.md","lastUpdated":1690620914000}'),o={name:"core/json-helper.md"},t=n("",27),l=[t];function p(r,c,i,d,y,h){return a(),e("div",null,l)}const C=s(o,[["render",p]]);export{F as __pageData,C as default}; diff --git a/docs/assets/core_maths.md.943c74fb.js b/docs/assets/core_maths.md.514d3cf2.js similarity index 95% rename from docs/assets/core_maths.md.943c74fb.js rename to docs/assets/core_maths.md.514d3cf2.js index 3d62b9b3..8b7adb78 100644 --- a/docs/assets/core_maths.md.943c74fb.js +++ b/docs/assets/core_maths.md.514d3cf2.js @@ -1 +1 @@ -import{_ as t,o as e,c as a,R as r}from"./chunks/framework.fed62f4c.js";const p=JSON.parse('{"title":"Maths","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths.md","filePath":"core/maths.md","lastUpdated":1675590267000}'),o={name:"core/maths.md"},h=r('

Maths

This page is about the Maths namespace available in PeyrSharp.Core. You can find here all of its classes.

Compatibility

The Maths namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

',7),l=[h];function s(i,m,c,d,n,f){return e(),a("div",null,l)}const _=t(o,[["render",s]]);export{p as __pageData,_ as default}; +import{_ as t,o as e,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const p=JSON.parse('{"title":"Maths","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths.md","filePath":"core/maths.md","lastUpdated":1675590267000}'),o={name:"core/maths.md"},h=r('

Maths

This page is about the Maths namespace available in PeyrSharp.Core. You can find here all of its classes.

Compatibility

The Maths namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

',7),l=[h];function s(i,m,c,d,n,f){return e(),a("div",null,l)}const _=t(o,[["render",s]]);export{p as __pageData,_ as default}; diff --git a/docs/assets/core_maths.md.943c74fb.lean.js b/docs/assets/core_maths.md.514d3cf2.lean.js similarity index 68% rename from docs/assets/core_maths.md.943c74fb.lean.js rename to docs/assets/core_maths.md.514d3cf2.lean.js index c76dc4aa..8988fb97 100644 --- a/docs/assets/core_maths.md.943c74fb.lean.js +++ b/docs/assets/core_maths.md.514d3cf2.lean.js @@ -1 +1 @@ -import{_ as t,o as e,c as a,R as r}from"./chunks/framework.fed62f4c.js";const p=JSON.parse('{"title":"Maths","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths.md","filePath":"core/maths.md","lastUpdated":1675590267000}'),o={name:"core/maths.md"},h=r("",7),l=[h];function s(i,m,c,d,n,f){return e(),a("div",null,l)}const _=t(o,[["render",s]]);export{p as __pageData,_ as default}; +import{_ as t,o as e,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const p=JSON.parse('{"title":"Maths","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths.md","filePath":"core/maths.md","lastUpdated":1675590267000}'),o={name:"core/maths.md"},h=r("",7),l=[h];function s(i,m,c,d,n,f){return e(),a("div",null,l)}const _=t(o,[["render",s]]);export{p as __pageData,_ as default}; diff --git a/docs/assets/core_maths_algebra.md.f648b381.js b/docs/assets/core_maths_algebra.md.25cd2650.js similarity index 99% rename from docs/assets/core_maths_algebra.md.f648b381.js rename to docs/assets/core_maths_algebra.md.25cd2650.js index 1df4c03b..b64214c6 100644 --- a/docs/assets/core_maths_algebra.md.f648b381.js +++ b/docs/assets/core_maths_algebra.md.25cd2650.js @@ -1,4 +1,4 @@ -import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Algebra","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/algebra.md","filePath":"core/maths/algebra.md","lastUpdated":1666370076000}'),t={name:"core/maths/algebra.md"},o=n(`

Algebra

This page is about the Algebra class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Algebra class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Sum(numbers) (double)

Definition

Returns the sum of specified double numbers. It returns a double value.

Arguments

TypeNameMeaning
params double[]numbersThe numbers to do the sum of.

Usage

c#
using PeyrSharp.Core.Maths;
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Algebra","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/algebra.md","filePath":"core/maths/algebra.md","lastUpdated":1666370076000}'),t={name:"core/maths/algebra.md"},o=n(`

Algebra

This page is about the Algebra class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Algebra class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Sum(numbers) (double)

Definition

Returns the sum of specified double numbers. It returns a double value.

Arguments

TypeNameMeaning
params double[]numbersThe numbers to do the sum of.

Usage

c#
using PeyrSharp.Core.Maths;
 
 // Usage 1
 double sum = Algebra.Sum(12, 1.5, 45, 2.2);
diff --git a/docs/assets/core_maths_algebra.md.f648b381.lean.js b/docs/assets/core_maths_algebra.md.25cd2650.lean.js
similarity index 70%
rename from docs/assets/core_maths_algebra.md.f648b381.lean.js
rename to docs/assets/core_maths_algebra.md.25cd2650.lean.js
index 77ceda6e..fee2e9ca 100644
--- a/docs/assets/core_maths_algebra.md.f648b381.lean.js
+++ b/docs/assets/core_maths_algebra.md.25cd2650.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Algebra","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/algebra.md","filePath":"core/maths/algebra.md","lastUpdated":1666370076000}'),t={name:"core/maths/algebra.md"},o=n("",63),l=[o];function r(p,c,i,d,h,u){return s(),e("div",null,l)}const C=a(t,[["render",r]]);export{D as __pageData,C as default};
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Algebra","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/algebra.md","filePath":"core/maths/algebra.md","lastUpdated":1666370076000}'),t={name:"core/maths/algebra.md"},o=n("",63),l=[o];function r(p,c,i,d,h,u){return s(),e("div",null,l)}const C=a(t,[["render",r]]);export{D as __pageData,C as default};
diff --git a/docs/assets/core_maths_geometry.md.bb1ce1d9.js b/docs/assets/core_maths_geometry.md.f210912f.js
similarity index 94%
rename from docs/assets/core_maths_geometry.md.bb1ce1d9.js
rename to docs/assets/core_maths_geometry.md.f210912f.js
index c459f6f4..4da94024 100644
--- a/docs/assets/core_maths_geometry.md.bb1ce1d9.js
+++ b/docs/assets/core_maths_geometry.md.f210912f.js
@@ -1 +1 @@
-import{_ as e,o as t,c as a,R as r}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry.md","filePath":"core/maths/geometry.md","lastUpdated":1665756355000}'),o={name:"core/maths/geometry.md"},l=r('

Geometry

This page is about the Geometry namespace available in PeyrSharp.Core.Maths. This namespace includes several classes to get and calculates various aspects of different shapes, like the area, perimeter, volume and more.

Compatibility

The namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

',7),s=[l];function i(h,m,d,c,n,p){return t(),a("div",null,s)}const f=e(o,[["render",i]]);export{y as __pageData,f as default}; +import{_ as e,o as t,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry.md","filePath":"core/maths/geometry.md","lastUpdated":1665756355000}'),o={name:"core/maths/geometry.md"},l=r('

Geometry

This page is about the Geometry namespace available in PeyrSharp.Core.Maths. This namespace includes several classes to get and calculates various aspects of different shapes, like the area, perimeter, volume and more.

Compatibility

The namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

',7),s=[l];function i(h,m,d,c,n,p){return t(),a("div",null,s)}const f=e(o,[["render",i]]);export{y as __pageData,f as default}; diff --git a/docs/assets/core_maths_geometry.md.bb1ce1d9.lean.js b/docs/assets/core_maths_geometry.md.f210912f.lean.js similarity index 70% rename from docs/assets/core_maths_geometry.md.bb1ce1d9.lean.js rename to docs/assets/core_maths_geometry.md.f210912f.lean.js index ca48d3f1..64fdc702 100644 --- a/docs/assets/core_maths_geometry.md.bb1ce1d9.lean.js +++ b/docs/assets/core_maths_geometry.md.f210912f.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as a,R as r}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry.md","filePath":"core/maths/geometry.md","lastUpdated":1665756355000}'),o={name:"core/maths/geometry.md"},l=r("",7),s=[l];function i(h,m,d,c,n,p){return t(),a("div",null,s)}const f=e(o,[["render",i]]);export{y as __pageData,f as default}; +import{_ as e,o as t,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry.md","filePath":"core/maths/geometry.md","lastUpdated":1665756355000}'),o={name:"core/maths/geometry.md"},l=r("",7),s=[l];function i(h,m,d,c,n,p){return t(),a("div",null,s)}const f=e(o,[["render",i]]);export{y as __pageData,f as default}; diff --git a/docs/assets/core_maths_geometry_circle.md.e17d53a3.js b/docs/assets/core_maths_geometry_circle.md.e12239d2.js similarity index 98% rename from docs/assets/core_maths_geometry_circle.md.e17d53a3.js rename to docs/assets/core_maths_geometry_circle.md.e12239d2.js index bc981c82..8eee6681 100644 --- a/docs/assets/core_maths_geometry_circle.md.e17d53a3.js +++ b/docs/assets/core_maths_geometry_circle.md.e12239d2.js @@ -1,4 +1,4 @@ -import{_ as a,o as e,c as s,R as t}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"Circle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/circle.md","filePath":"core/maths/geometry/circle.md","lastUpdated":1665756380000}'),o={name:"core/maths/geometry/circle.md"},n=t(`

Circle

This page is about the Circle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Circle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Circle(radius)

Definition

Initializes a Circle class from a specific radius.

Arguments

TypeNameMeaning
doubleradiusThe radius of the circle.

WARNING

If radius ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as a,o as e,c as s,U as t}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"Circle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/circle.md","filePath":"core/maths/geometry/circle.md","lastUpdated":1665756380000}'),o={name:"core/maths/geometry/circle.md"},n=t(`

Circle

This page is about the Circle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Circle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Circle(radius)

Definition

Initializes a Circle class from a specific radius.

Arguments

TypeNameMeaning
doubleradiusThe radius of the circle.

WARNING

If radius ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Circle circle = new(10); // Creates a circle with a radius of 10

Properties

Area

Definition

c#
public double Area { get; }

The Area property is a double which returns the area of the circle. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_circle.md.e17d53a3.lean.js b/docs/assets/core_maths_geometry_circle.md.e12239d2.lean.js
similarity index 71%
rename from docs/assets/core_maths_geometry_circle.md.e17d53a3.lean.js
rename to docs/assets/core_maths_geometry_circle.md.e12239d2.lean.js
index cf40eda1..0db82020 100644
--- a/docs/assets/core_maths_geometry_circle.md.e17d53a3.lean.js
+++ b/docs/assets/core_maths_geometry_circle.md.e12239d2.lean.js
@@ -1 +1 @@
-import{_ as a,o as e,c as s,R as t}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"Circle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/circle.md","filePath":"core/maths/geometry/circle.md","lastUpdated":1665756380000}'),o={name:"core/maths/geometry/circle.md"},n=t("",27),l=[n];function r(c,p,i,d,h,y){return e(),s("div",null,l)}const D=a(o,[["render",r]]);export{u as __pageData,D as default};
+import{_ as a,o as e,c as s,U as t}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"Circle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/circle.md","filePath":"core/maths/geometry/circle.md","lastUpdated":1665756380000}'),o={name:"core/maths/geometry/circle.md"},n=t("",27),l=[n];function r(c,p,i,d,h,y){return e(),s("div",null,l)}const D=a(o,[["render",r]]);export{u as __pageData,D as default};
diff --git a/docs/assets/core_maths_geometry_cone.md.0a557e23.js b/docs/assets/core_maths_geometry_cone.md.ab75c386.js
similarity index 98%
rename from docs/assets/core_maths_geometry_cone.md.0a557e23.js
rename to docs/assets/core_maths_geometry_cone.md.ab75c386.js
index 2549c599..6f3b4699 100644
--- a/docs/assets/core_maths_geometry_cone.md.0a557e23.js
+++ b/docs/assets/core_maths_geometry_cone.md.ab75c386.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as o}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Cone","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cone.md","filePath":"core/maths/geometry/cone.md","lastUpdated":1665652653000}'),n={name:"core/maths/geometry/cone.md"},t=o(`

Cone

This page is about the Cone class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cone class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cone(radius, height)

Definition

Initializes a Cone class from a specific radius and height.

Arguments

TypeNameMeaning
doubleradiusThe radius of the cone.
doubleheightThe height of the cone.

WARNING

If radius or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as a,o as s,c as e,U as o}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Cone","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cone.md","filePath":"core/maths/geometry/cone.md","lastUpdated":1665652653000}'),n={name:"core/maths/geometry/cone.md"},t=o(`

Cone

This page is about the Cone class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cone class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cone(radius, height)

Definition

Initializes a Cone class from a specific radius and height.

Arguments

TypeNameMeaning
doubleradiusThe radius of the cone.
doubleheightThe height of the cone.

WARNING

If radius or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Cone cone = new(10, 20); // Creates a cone with a radius of 10, and a height of 20

Properties

Volume

Definition

c#
public double Volume { get; }

The Volume property is a double which returns the volume of the cone. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_cone.md.0a557e23.lean.js b/docs/assets/core_maths_geometry_cone.md.ab75c386.lean.js
similarity index 71%
rename from docs/assets/core_maths_geometry_cone.md.0a557e23.lean.js
rename to docs/assets/core_maths_geometry_cone.md.ab75c386.lean.js
index b8082c01..c1f04568 100644
--- a/docs/assets/core_maths_geometry_cone.md.0a557e23.lean.js
+++ b/docs/assets/core_maths_geometry_cone.md.ab75c386.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as o}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Cone","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cone.md","filePath":"core/maths/geometry/cone.md","lastUpdated":1665652653000}'),n={name:"core/maths/geometry/cone.md"},t=o("",33),l=[t];function p(r,c,i,d,h,y){return s(),e("div",null,l)}const u=a(n,[["render",p]]);export{D as __pageData,u as default};
+import{_ as a,o as s,c as e,U as o}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Cone","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cone.md","filePath":"core/maths/geometry/cone.md","lastUpdated":1665652653000}'),n={name:"core/maths/geometry/cone.md"},t=o("",33),l=[t];function p(r,c,i,d,h,y){return s(),e("div",null,l)}const u=a(n,[["render",p]]);export{D as __pageData,u as default};
diff --git a/docs/assets/core_maths_geometry_cube.md.425fa255.js b/docs/assets/core_maths_geometry_cube.md.1daf7518.js
similarity index 99%
rename from docs/assets/core_maths_geometry_cube.md.425fa255.js
rename to docs/assets/core_maths_geometry_cube.md.1daf7518.js
index 8b39e22c..dcbd5aa8 100644
--- a/docs/assets/core_maths_geometry_cube.md.425fa255.js
+++ b/docs/assets/core_maths_geometry_cube.md.1daf7518.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Cube","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cube.md","filePath":"core/maths/geometry/cube.md","lastUpdated":1665652653000}'),o={name:"core/maths/geometry/cube.md"},l=n(`

Cube

This page is about the Cube class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cube class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cube(side)

Definition

Initializes a Cube class from the length of the side of the cube.

Arguments

TypeNameMeaning
doublesideThe length of the side of the cube.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Cube","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cube.md","filePath":"core/maths/geometry/cube.md","lastUpdated":1665652653000}'),o={name:"core/maths/geometry/cube.md"},l=n(`

Cube

This page is about the Cube class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cube class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cube(side)

Definition

Initializes a Cube class from the length of the side of the cube.

Arguments

TypeNameMeaning
doublesideThe length of the side of the cube.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Cube cube = new(10); // Creates a 10x10x10 cube

Cube(width, length, height)

Definition

Initializes a Cube class from the width, the length and the height of the cuboidal.

Arguments

TypeNameMeaning
doublewidthThe width of the cuboidal.
doublelengthThe length of the cuboidal.
doubleheightThe height of the cuboidal.

WARNING

If width, length or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_cube.md.425fa255.lean.js b/docs/assets/core_maths_geometry_cube.md.1daf7518.lean.js
similarity index 71%
rename from docs/assets/core_maths_geometry_cube.md.425fa255.lean.js
rename to docs/assets/core_maths_geometry_cube.md.1daf7518.lean.js
index 14a9a22e..5cb50e6a 100644
--- a/docs/assets/core_maths_geometry_cube.md.425fa255.lean.js
+++ b/docs/assets/core_maths_geometry_cube.md.1daf7518.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Cube","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cube.md","filePath":"core/maths/geometry/cube.md","lastUpdated":1665652653000}'),o={name:"core/maths/geometry/cube.md"},l=n("",66),t=[l];function p(c,r,i,d,h,y){return a(),e("div",null,t)}const u=s(o,[["render",p]]);export{D as __pageData,u as default};
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Cube","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cube.md","filePath":"core/maths/geometry/cube.md","lastUpdated":1665652653000}'),o={name:"core/maths/geometry/cube.md"},l=n("",66),t=[l];function p(c,r,i,d,h,y){return a(),e("div",null,t)}const u=s(o,[["render",p]]);export{D as __pageData,u as default};
diff --git a/docs/assets/core_maths_geometry_cylinder.md.4f73563e.js b/docs/assets/core_maths_geometry_cylinder.md.1f35fb1b.js
similarity index 99%
rename from docs/assets/core_maths_geometry_cylinder.md.4f73563e.js
rename to docs/assets/core_maths_geometry_cylinder.md.1f35fb1b.js
index ab8cd7b3..467c3116 100644
--- a/docs/assets/core_maths_geometry_cylinder.md.4f73563e.js
+++ b/docs/assets/core_maths_geometry_cylinder.md.1f35fb1b.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Cylinder","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cylinder.md","filePath":"core/maths/geometry/cylinder.md","lastUpdated":1665652653000}'),o={name:"core/maths/geometry/cylinder.md"},l=n(`

Cylinder

This page is about the Cylinder class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cylinder class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cylinder(radius, height)

Definition

Initializes a Cylinder class from a specific radius and height.

Arguments

TypeNameMeaning
doubleradiusThe radius of the cylinder.
doubleheightThe height of the cylinder.

WARNING

If radius or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Cylinder","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cylinder.md","filePath":"core/maths/geometry/cylinder.md","lastUpdated":1665652653000}'),o={name:"core/maths/geometry/cylinder.md"},l=n(`

Cylinder

This page is about the Cylinder class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cylinder class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cylinder(radius, height)

Definition

Initializes a Cylinder class from a specific radius and height.

Arguments

TypeNameMeaning
doubleradiusThe radius of the cylinder.
doubleheightThe height of the cylinder.

WARNING

If radius or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Cylinder cylinder = new(20, 10); // Creates a cylinder with a radius of 20, and a height of 10

Properties

Volume

Definition

c#
public double Volume { get; }

The Volume property is a double which returns the volume of the cylinder. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_cylinder.md.4f73563e.lean.js b/docs/assets/core_maths_geometry_cylinder.md.1f35fb1b.lean.js
similarity index 72%
rename from docs/assets/core_maths_geometry_cylinder.md.4f73563e.lean.js
rename to docs/assets/core_maths_geometry_cylinder.md.1f35fb1b.lean.js
index 2530b380..371b8229 100644
--- a/docs/assets/core_maths_geometry_cylinder.md.4f73563e.lean.js
+++ b/docs/assets/core_maths_geometry_cylinder.md.1f35fb1b.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Cylinder","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cylinder.md","filePath":"core/maths/geometry/cylinder.md","lastUpdated":1665652653000}'),o={name:"core/maths/geometry/cylinder.md"},l=n("",39),t=[l];function p(r,c,i,d,h,y){return s(),e("div",null,t)}const F=a(o,[["render",p]]);export{D as __pageData,F as default};
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Cylinder","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/cylinder.md","filePath":"core/maths/geometry/cylinder.md","lastUpdated":1665652653000}'),o={name:"core/maths/geometry/cylinder.md"},l=n("",39),t=[l];function p(r,c,i,d,h,y){return s(),e("div",null,t)}const F=a(o,[["render",p]]);export{D as __pageData,F as default};
diff --git a/docs/assets/core_maths_geometry_diamond.md.8a5f5fd8.js b/docs/assets/core_maths_geometry_diamond.md.5256c148.js
similarity index 99%
rename from docs/assets/core_maths_geometry_diamond.md.8a5f5fd8.js
rename to docs/assets/core_maths_geometry_diamond.md.5256c148.js
index 36b37488..7aac4bd5 100644
--- a/docs/assets/core_maths_geometry_diamond.md.8a5f5fd8.js
+++ b/docs/assets/core_maths_geometry_diamond.md.5256c148.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Diamond","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/diamond.md","filePath":"core/maths/geometry/diamond.md","lastUpdated":1666360764000}'),o={name:"core/maths/geometry/diamond.md"},l=n(`

Diamond

This page is about the Diamond class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Diamond class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Diamond(side)

Definition

Initializes a Diamond class from the length of its side.

Arguments

TypeNameMeaning
doublesideThe length of the side.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Diamond","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/diamond.md","filePath":"core/maths/geometry/diamond.md","lastUpdated":1666360764000}'),o={name:"core/maths/geometry/diamond.md"},l=n(`

Diamond

This page is about the Diamond class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Diamond class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Diamond(side)

Definition

Initializes a Diamond class from the length of its side.

Arguments

TypeNameMeaning
doublesideThe length of the side.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Diamond diamond = new(5); // Creates a diamond where all the sides equals to 5.

Diamond(diagonal1, diagonal2)

Definition

Initializes a Diamond class from the length of its diagonals.

Arguments

TypeNameMeaning
doublediagonal1The length of the first diagonal.
doublediagonal2The side of the second diagonal.

WARNING

If diagonal1 or diagonal2 ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_diamond.md.8a5f5fd8.lean.js b/docs/assets/core_maths_geometry_diamond.md.5256c148.lean.js
similarity index 71%
rename from docs/assets/core_maths_geometry_diamond.md.8a5f5fd8.lean.js
rename to docs/assets/core_maths_geometry_diamond.md.5256c148.lean.js
index c21a2211..ee74b682 100644
--- a/docs/assets/core_maths_geometry_diamond.md.8a5f5fd8.lean.js
+++ b/docs/assets/core_maths_geometry_diamond.md.5256c148.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Diamond","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/diamond.md","filePath":"core/maths/geometry/diamond.md","lastUpdated":1666360764000}'),o={name:"core/maths/geometry/diamond.md"},l=n("",49),t=[l];function p(i,r,c,d,h,y){return s(),e("div",null,t)}const F=a(o,[["render",p]]);export{D as __pageData,F as default};
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Diamond","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/diamond.md","filePath":"core/maths/geometry/diamond.md","lastUpdated":1666360764000}'),o={name:"core/maths/geometry/diamond.md"},l=n("",49),t=[l];function p(i,r,c,d,h,y){return s(),e("div",null,t)}const F=a(o,[["render",p]]);export{D as __pageData,F as default};
diff --git a/docs/assets/core_maths_geometry_hexagon.md.b8006212.js b/docs/assets/core_maths_geometry_hexagon.md.3164db2b.js
similarity index 98%
rename from docs/assets/core_maths_geometry_hexagon.md.b8006212.js
rename to docs/assets/core_maths_geometry_hexagon.md.3164db2b.js
index e0f01f1c..74ce7608 100644
--- a/docs/assets/core_maths_geometry_hexagon.md.b8006212.js
+++ b/docs/assets/core_maths_geometry_hexagon.md.3164db2b.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as o}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Hexagon","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/hexagon.md","filePath":"core/maths/geometry/hexagon.md","lastUpdated":1665753720000}'),n={name:"core/maths/geometry/hexagon.md"},t=o(`

Hexagon

This page is about the Hexagon class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Hexagon class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Hexagon(side)

Definition

Initializes a Hexagon class from the length of its side.

Arguments

TypeNameMeaning
doublesideThe length of the side of the hexagon.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as a,o as s,c as e,U as o}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Hexagon","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/hexagon.md","filePath":"core/maths/geometry/hexagon.md","lastUpdated":1665753720000}'),n={name:"core/maths/geometry/hexagon.md"},t=o(`

Hexagon

This page is about the Hexagon class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Hexagon class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Hexagon(side)

Definition

Initializes a Hexagon class from the length of its side.

Arguments

TypeNameMeaning
doublesideThe length of the side of the hexagon.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Hexagon hexagon = new(12); // Creates a hexagon with a length of 12

Properties

Area

Definition

c#
public double Area { get; }

The Area property is a double which returns the area of the hexagon. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_hexagon.md.b8006212.lean.js b/docs/assets/core_maths_geometry_hexagon.md.3164db2b.lean.js
similarity index 71%
rename from docs/assets/core_maths_geometry_hexagon.md.b8006212.lean.js
rename to docs/assets/core_maths_geometry_hexagon.md.3164db2b.lean.js
index 12db6cf5..0cda41e0 100644
--- a/docs/assets/core_maths_geometry_hexagon.md.b8006212.lean.js
+++ b/docs/assets/core_maths_geometry_hexagon.md.3164db2b.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as o}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Hexagon","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/hexagon.md","filePath":"core/maths/geometry/hexagon.md","lastUpdated":1665753720000}'),n={name:"core/maths/geometry/hexagon.md"},t=o("",33),l=[t];function p(r,c,i,d,h,y){return s(),e("div",null,l)}const F=a(n,[["render",p]]);export{D as __pageData,F as default};
+import{_ as a,o as s,c as e,U as o}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Hexagon","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/hexagon.md","filePath":"core/maths/geometry/hexagon.md","lastUpdated":1665753720000}'),n={name:"core/maths/geometry/hexagon.md"},t=o("",33),l=[t];function p(r,c,i,d,h,y){return s(),e("div",null,l)}const F=a(n,[["render",p]]);export{D as __pageData,F as default};
diff --git a/docs/assets/core_maths_geometry_pyramid.md.0310bf75.js b/docs/assets/core_maths_geometry_pyramid.md.8ad145a7.js
similarity index 99%
rename from docs/assets/core_maths_geometry_pyramid.md.0310bf75.js
rename to docs/assets/core_maths_geometry_pyramid.md.8ad145a7.js
index ee78083d..b2096ba7 100644
--- a/docs/assets/core_maths_geometry_pyramid.md.0310bf75.js
+++ b/docs/assets/core_maths_geometry_pyramid.md.8ad145a7.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Pyramid","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/pyramid.md","filePath":"core/maths/geometry/pyramid.md","lastUpdated":1665753720000}'),o={name:"core/maths/geometry/pyramid.md"},l=n(`

Pyramid

This page is about the Pyramid class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors, methods and properties.

Compatibility

The Pyramid class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Pyramid(width, length, height)

Definition

Initializes a Pyramid class from a specific width, length, and height.

Arguments

TypeNameMeaning
doublewidthThe width of the pyramid.
doublelengthThe length of the pyramid.
doubleheightThe height of the pyramid.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Pyramid","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/pyramid.md","filePath":"core/maths/geometry/pyramid.md","lastUpdated":1665753720000}'),o={name:"core/maths/geometry/pyramid.md"},l=n(`

Pyramid

This page is about the Pyramid class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors, methods and properties.

Compatibility

The Pyramid class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Pyramid(width, length, height)

Definition

Initializes a Pyramid class from a specific width, length, and height.

Arguments

TypeNameMeaning
doublewidthThe width of the pyramid.
doublelengthThe length of the pyramid.
doubleheightThe height of the pyramid.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Pyramid pyramid = new(12, 10, 15); // Creates a pyramid with a width of 12, a length of 10, and a height of 15

Methods

FromVolumeAndSize(volume, width, length)

Definition

Initializes a Pyramid class from a specific volume, width, and length.

Arguments

TypeNameMeaning
doublevolumeThe volume of the pyramid.
doublewidthThe width of the pyramid.
doublelengthThe length of the pyramid.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_pyramid.md.0310bf75.lean.js b/docs/assets/core_maths_geometry_pyramid.md.8ad145a7.lean.js
similarity index 71%
rename from docs/assets/core_maths_geometry_pyramid.md.0310bf75.lean.js
rename to docs/assets/core_maths_geometry_pyramid.md.8ad145a7.lean.js
index 8b8367c5..9642779d 100644
--- a/docs/assets/core_maths_geometry_pyramid.md.0310bf75.lean.js
+++ b/docs/assets/core_maths_geometry_pyramid.md.8ad145a7.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Pyramid","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/pyramid.md","filePath":"core/maths/geometry/pyramid.md","lastUpdated":1665753720000}'),o={name:"core/maths/geometry/pyramid.md"},l=n("",78),t=[l];function p(r,c,i,d,h,y){return s(),e("div",null,t)}const F=a(o,[["render",p]]);export{D as __pageData,F as default};
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Pyramid","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/pyramid.md","filePath":"core/maths/geometry/pyramid.md","lastUpdated":1665753720000}'),o={name:"core/maths/geometry/pyramid.md"},l=n("",78),t=[l];function p(r,c,i,d,h,y){return s(),e("div",null,t)}const F=a(o,[["render",p]]);export{D as __pageData,F as default};
diff --git a/docs/assets/core_maths_geometry_rectangle.md.bde50885.js b/docs/assets/core_maths_geometry_rectangle.md.de2778c8.js
similarity index 99%
rename from docs/assets/core_maths_geometry_rectangle.md.bde50885.js
rename to docs/assets/core_maths_geometry_rectangle.md.de2778c8.js
index 4d937dc4..9a0a462d 100644
--- a/docs/assets/core_maths_geometry_rectangle.md.bde50885.js
+++ b/docs/assets/core_maths_geometry_rectangle.md.de2778c8.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Rectangle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/rectangle.md","filePath":"core/maths/geometry/rectangle.md","lastUpdated":1665754402000}'),l={name:"core/maths/geometry/rectangle.md"},o=n(`

Rectangle

This page is about the Rectangle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Rectangle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Rectangle(width, length)

Definition

Initializes a Rectangle class from a specific length and width.

Arguments

TypeNameMeaning
doublewidthThe width of the rectangle.
doublelengthThe length of the rectangle.

WARNING

If width or length ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Rectangle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/rectangle.md","filePath":"core/maths/geometry/rectangle.md","lastUpdated":1665754402000}'),l={name:"core/maths/geometry/rectangle.md"},o=n(`

Rectangle

This page is about the Rectangle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Rectangle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Rectangle(width, length)

Definition

Initializes a Rectangle class from a specific length and width.

Arguments

TypeNameMeaning
doublewidthThe width of the rectangle.
doublelengthThe length of the rectangle.

WARNING

If width or length ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Rectangle rectangle = new(10, 20); // Creates a 10x20 rectangle

Properties

Area

Definition

c#
public double Area { get; }

The Area property is a double which returns the area of the rectangle. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_rectangle.md.bde50885.lean.js b/docs/assets/core_maths_geometry_rectangle.md.de2778c8.lean.js
similarity index 72%
rename from docs/assets/core_maths_geometry_rectangle.md.bde50885.lean.js
rename to docs/assets/core_maths_geometry_rectangle.md.de2778c8.lean.js
index 7f51063e..6a75b9b4 100644
--- a/docs/assets/core_maths_geometry_rectangle.md.bde50885.lean.js
+++ b/docs/assets/core_maths_geometry_rectangle.md.de2778c8.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Rectangle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/rectangle.md","filePath":"core/maths/geometry/rectangle.md","lastUpdated":1665754402000}'),l={name:"core/maths/geometry/rectangle.md"},o=n("",45),t=[o];function p(r,c,i,d,h,y){return s(),e("div",null,t)}const F=a(l,[["render",p]]);export{D as __pageData,F as default};
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Rectangle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/rectangle.md","filePath":"core/maths/geometry/rectangle.md","lastUpdated":1665754402000}'),l={name:"core/maths/geometry/rectangle.md"},o=n("",45),t=[o];function p(r,c,i,d,h,y){return s(),e("div",null,t)}const F=a(l,[["render",p]]);export{D as __pageData,F as default};
diff --git a/docs/assets/core_maths_geometry_sphere.md.8e538baa.js b/docs/assets/core_maths_geometry_sphere.md.1827ca30.js
similarity index 98%
rename from docs/assets/core_maths_geometry_sphere.md.8e538baa.js
rename to docs/assets/core_maths_geometry_sphere.md.1827ca30.js
index df2b6aa2..665c6304 100644
--- a/docs/assets/core_maths_geometry_sphere.md.8e538baa.js
+++ b/docs/assets/core_maths_geometry_sphere.md.1827ca30.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as o}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"Sphere","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/sphere.md","filePath":"core/maths/geometry/sphere.md","lastUpdated":1665754815000}'),n={name:"core/maths/geometry/sphere.md"},t=o(`

Sphere

This page is about the Sphere class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Sphere class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Sphere(radius)

Definition

Initializes a Sphere class from a specific radius.

Arguments

TypeNameMeaning
doubleradiusThe radius of the sphere.

WARNING

If radius ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as a,o as s,c as e,U as o}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"Sphere","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/sphere.md","filePath":"core/maths/geometry/sphere.md","lastUpdated":1665754815000}'),n={name:"core/maths/geometry/sphere.md"},t=o(`

Sphere

This page is about the Sphere class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Sphere class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Sphere(radius)

Definition

Initializes a Sphere class from a specific radius.

Arguments

TypeNameMeaning
doubleradiusThe radius of the sphere.

WARNING

If radius ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Sphere sphere = new(10); // Creates a sphere with a radius of 10

Properties

Area

Definition

c#
public double Area { get; }

The Area property is a double which returns the area of the sphere. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_sphere.md.8e538baa.lean.js b/docs/assets/core_maths_geometry_sphere.md.1827ca30.lean.js
similarity index 71%
rename from docs/assets/core_maths_geometry_sphere.md.8e538baa.lean.js
rename to docs/assets/core_maths_geometry_sphere.md.1827ca30.lean.js
index 1b0d3632..344fdf3a 100644
--- a/docs/assets/core_maths_geometry_sphere.md.8e538baa.lean.js
+++ b/docs/assets/core_maths_geometry_sphere.md.1827ca30.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as o}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"Sphere","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/sphere.md","filePath":"core/maths/geometry/sphere.md","lastUpdated":1665754815000}'),n={name:"core/maths/geometry/sphere.md"},t=o("",33),l=[t];function p(r,c,i,d,h,y){return s(),e("div",null,l)}const D=a(n,[["render",p]]);export{u as __pageData,D as default};
+import{_ as a,o as s,c as e,U as o}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"Sphere","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/sphere.md","filePath":"core/maths/geometry/sphere.md","lastUpdated":1665754815000}'),n={name:"core/maths/geometry/sphere.md"},t=o("",33),l=[t];function p(r,c,i,d,h,y){return s(),e("div",null,l)}const D=a(n,[["render",p]]);export{u as __pageData,D as default};
diff --git a/docs/assets/core_maths_geometry_triangle.md.8a4205ff.js b/docs/assets/core_maths_geometry_triangle.md.3062f476.js
similarity index 99%
rename from docs/assets/core_maths_geometry_triangle.md.8a4205ff.js
rename to docs/assets/core_maths_geometry_triangle.md.3062f476.js
index 94cf2633..ca0ec004 100644
--- a/docs/assets/core_maths_geometry_triangle.md.8a4205ff.js
+++ b/docs/assets/core_maths_geometry_triangle.md.3062f476.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Triangle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/triangle.md","filePath":"core/maths/geometry/triangle.md","lastUpdated":1665755989000}'),l={name:"core/maths/geometry/triangle.md"},o=n(`

Triangle

This page is about the Triangle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Triangle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Triangle(side1, side2, side3)

Definition

Initializes a Triangle class from the length of its sides.

Arguments

TypeNameMeaning
doubleside1The length of the first side of the triangle.
doubleside2The length of the second side of the triangle.
doubleside3The length of the third side of the triangle.

WARNING

If side1, side2, or side3 ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Triangle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/triangle.md","filePath":"core/maths/geometry/triangle.md","lastUpdated":1665755989000}'),l={name:"core/maths/geometry/triangle.md"},o=n(`

Triangle

This page is about the Triangle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Triangle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Triangle(side1, side2, side3)

Definition

Initializes a Triangle class from the length of its sides.

Arguments

TypeNameMeaning
doubleside1The length of the first side of the triangle.
doubleside2The length of the second side of the triangle.
doubleside3The length of the third side of the triangle.

WARNING

If side1, side2, or side3 ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Triangle triangle = new(10, 20, 10); // Creates a triangle

Triangle(width, height)

Definition

Initializes a Triangle class from a width and height.

Arguments

TypeNameMeaning
doublewidthThe width of the triangle.
doubleheightThe height of the triangle.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
diff --git a/docs/assets/core_maths_geometry_triangle.md.8a4205ff.lean.js b/docs/assets/core_maths_geometry_triangle.md.3062f476.lean.js
similarity index 72%
rename from docs/assets/core_maths_geometry_triangle.md.8a4205ff.lean.js
rename to docs/assets/core_maths_geometry_triangle.md.3062f476.lean.js
index a099fb13..61871281 100644
--- a/docs/assets/core_maths_geometry_triangle.md.8a4205ff.lean.js
+++ b/docs/assets/core_maths_geometry_triangle.md.3062f476.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Triangle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/triangle.md","filePath":"core/maths/geometry/triangle.md","lastUpdated":1665755989000}'),l={name:"core/maths/geometry/triangle.md"},o=n("",87),t=[o];function p(r,c,i,d,h,y){return a(),e("div",null,t)}const F=s(l,[["render",p]]);export{D as __pageData,F as default};
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Triangle","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/geometry/triangle.md","filePath":"core/maths/geometry/triangle.md","lastUpdated":1665755989000}'),l={name:"core/maths/geometry/triangle.md"},o=n("",87),t=[o];function p(r,c,i,d,h,y){return a(),e("div",null,t)}const F=s(l,[["render",p]]);export{D as __pageData,F as default};
diff --git a/docs/assets/core_maths_percentages.md.4fc6496d.js b/docs/assets/core_maths_percentages.md.6e243752.js
similarity index 98%
rename from docs/assets/core_maths_percentages.md.4fc6496d.js
rename to docs/assets/core_maths_percentages.md.6e243752.js
index 1d652514..31febf80 100644
--- a/docs/assets/core_maths_percentages.md.4fc6496d.js
+++ b/docs/assets/core_maths_percentages.md.6e243752.js
@@ -1,4 +1,4 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const g=JSON.parse('{"title":"Percentages","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/percentages.md","filePath":"core/maths/percentages.md","lastUpdated":1666371130000}'),o={name:"core/maths/percentages.md"},n=s(`

Percentages

This page is about the Percentages class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Percentages class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

IncreaseBy(value, increaseRate)

Definition

Returns the value after an increase of x% as a double.

Arguments

TypeNameMeaning
doublevalueThe original value.
doubleincreaseRateThe increase percentage (as x/100d).

Usage

c#
using PeyrSharp.Core.Maths;
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const g=JSON.parse('{"title":"Percentages","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/percentages.md","filePath":"core/maths/percentages.md","lastUpdated":1666371130000}'),o={name:"core/maths/percentages.md"},n=s(`

Percentages

This page is about the Percentages class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Percentages class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

IncreaseBy(value, increaseRate)

Definition

Returns the value after an increase of x% as a double.

Arguments

TypeNameMeaning
doublevalueThe original value.
doubleincreaseRateThe increase percentage (as x/100d).

Usage

c#
using PeyrSharp.Core.Maths;
 
 double price = Percentages.IncreaseBy(100, 10/100d); // Increase the price by 10%
 // price = 110

DecreaseBy(value, decreaseRate)

Definition

Returns the value after a decrease of x% as a double.

Arguments

TypeNameMeaning
doublevalueThe original value.
doubledecreaseRateThe decrease percentage (as x/100d).

Usage

c#
using PeyrSharp.Core.Maths;
diff --git a/docs/assets/core_maths_percentages.md.4fc6496d.lean.js b/docs/assets/core_maths_percentages.md.6e243752.lean.js
similarity index 71%
rename from docs/assets/core_maths_percentages.md.4fc6496d.lean.js
rename to docs/assets/core_maths_percentages.md.6e243752.lean.js
index d39d3a2b..08b1c160 100644
--- a/docs/assets/core_maths_percentages.md.4fc6496d.lean.js
+++ b/docs/assets/core_maths_percentages.md.6e243752.lean.js
@@ -1 +1 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const g=JSON.parse('{"title":"Percentages","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/percentages.md","filePath":"core/maths/percentages.md","lastUpdated":1666371130000}'),o={name:"core/maths/percentages.md"},n=s("",35),r=[n];function l(c,p,i,d,h,u){return a(),t("div",null,r)}const b=e(o,[["render",l]]);export{g as __pageData,b as default};
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const g=JSON.parse('{"title":"Percentages","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/percentages.md","filePath":"core/maths/percentages.md","lastUpdated":1666371130000}'),o={name:"core/maths/percentages.md"},n=s("",35),r=[n];function l(c,p,i,d,h,u){return a(),t("div",null,r)}const b=e(o,[["render",l]]);export{g as __pageData,b as default};
diff --git a/docs/assets/core_maths_proba.md.29a45d23.js b/docs/assets/core_maths_proba.md.c9293802.js
similarity index 97%
rename from docs/assets/core_maths_proba.md.29a45d23.js
rename to docs/assets/core_maths_proba.md.c9293802.js
index 8d68f3f5..dd2c3b58 100644
--- a/docs/assets/core_maths_proba.md.29a45d23.js
+++ b/docs/assets/core_maths_proba.md.c9293802.js
@@ -1,4 +1,4 @@
-import{_ as a,o as t,c as s,R as e}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Proba","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/proba.md","filePath":"core/maths/proba.md","lastUpdated":1675590267000}'),o={name:"core/maths/proba.md"},n=e(`

Proba

This page is about the Proba class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Proba class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GetRandomValue(probabilities)

Definition

Gets a random value based on the specified probabilities. Returns a randomly selected value.

Type parameters

TypeNameMeaning
T-The type of the values to select from.

Parameters

TypeNameMeaning
Dictionary<T, double>probabilitiesA dictionary containing the probability of getting each value.

Exceptions

  • ArgumentException: Thrown if the sum of probabilities is not equal to 1.
  • Exception: Thrown if an unexpected error occurs while selecting a random value.

Usage

c#
using PeyrSharp.Core.Maths;
+import{_ as a,o as t,c as s,U as e}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Proba","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/proba.md","filePath":"core/maths/proba.md","lastUpdated":1675590267000}'),o={name:"core/maths/proba.md"},n=e(`

Proba

This page is about the Proba class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Proba class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GetRandomValue(probabilities)

Definition

Gets a random value based on the specified probabilities. Returns a randomly selected value.

Type parameters

TypeNameMeaning
T-The type of the values to select from.

Parameters

TypeNameMeaning
Dictionary<T, double>probabilitiesA dictionary containing the probability of getting each value.

Exceptions

  • ArgumentException: Thrown if the sum of probabilities is not equal to 1.
  • Exception: Thrown if an unexpected error occurs while selecting a random value.

Usage

c#
using PeyrSharp.Core.Maths;
 
 Dictionary<string, double> probabilities = new Dictionary<string, double>
 {
diff --git a/docs/assets/core_maths_proba.md.29a45d23.lean.js b/docs/assets/core_maths_proba.md.c9293802.lean.js
similarity index 69%
rename from docs/assets/core_maths_proba.md.29a45d23.lean.js
rename to docs/assets/core_maths_proba.md.c9293802.lean.js
index 52430b0f..212a891d 100644
--- a/docs/assets/core_maths_proba.md.29a45d23.lean.js
+++ b/docs/assets/core_maths_proba.md.c9293802.lean.js
@@ -1 +1 @@
-import{_ as a,o as t,c as s,R as e}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Proba","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/proba.md","filePath":"core/maths/proba.md","lastUpdated":1675590267000}'),o={name:"core/maths/proba.md"},n=e("",18),l=[n];function r(p,i,c,d,h,y){return t(),s("div",null,l)}const C=a(o,[["render",r]]);export{D as __pageData,C as default};
+import{_ as a,o as t,c as s,U as e}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Proba","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/proba.md","filePath":"core/maths/proba.md","lastUpdated":1675590267000}'),o={name:"core/maths/proba.md"},n=e("",18),l=[n];function r(p,i,c,d,h,y){return t(),s("div",null,l)}const C=a(o,[["render",r]]);export{D as __pageData,C as default};
diff --git a/docs/assets/core_maths_stats.md.5e5b0939.js b/docs/assets/core_maths_stats.md.9297b391.js
similarity index 99%
rename from docs/assets/core_maths_stats.md.5e5b0939.js
rename to docs/assets/core_maths_stats.md.9297b391.js
index afabb62a..7fef49d8 100644
--- a/docs/assets/core_maths_stats.md.5e5b0939.js
+++ b/docs/assets/core_maths_stats.md.9297b391.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as t,R as e}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Stats","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/stats.md","filePath":"core/maths/stats.md","lastUpdated":1688123549000}'),n={name:"core/maths/stats.md"},o=e(`

Stats

This page is about the Stats class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Stats class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Mean(values)

Definition

Returns the mean of a dataset as a double.

Arguments

TypeNameMeaning
List<double>valuesThe dataset to calculate.

Exceptions

TypeMeaning
ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Core.Maths;
+import{_ as a,o as s,c as t,U as e}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Stats","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/stats.md","filePath":"core/maths/stats.md","lastUpdated":1688123549000}'),n={name:"core/maths/stats.md"},o=e(`

Stats

This page is about the Stats class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Stats class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Mean(values)

Definition

Returns the mean of a dataset as a double.

Arguments

TypeNameMeaning
List<double>valuesThe dataset to calculate.

Exceptions

TypeMeaning
ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Core.Maths;
 
 List<double> dataset = new List<double> { 1, 2, 3, 4, 5 };
 double mean = Stats.Mean(dataset); // Calculate the mean of the dataset
diff --git a/docs/assets/core_maths_stats.md.5e5b0939.lean.js b/docs/assets/core_maths_stats.md.9297b391.lean.js
similarity index 69%
rename from docs/assets/core_maths_stats.md.5e5b0939.lean.js
rename to docs/assets/core_maths_stats.md.9297b391.lean.js
index 51019011..57f5f8db 100644
--- a/docs/assets/core_maths_stats.md.5e5b0939.lean.js
+++ b/docs/assets/core_maths_stats.md.9297b391.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as t,R as e}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Stats","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/stats.md","filePath":"core/maths/stats.md","lastUpdated":1688123549000}'),n={name:"core/maths/stats.md"},o=e("",63),l=[o];function p(r,c,d,i,h,y){return s(),t("div",null,l)}const F=a(n,[["render",p]]);export{D as __pageData,F as default};
+import{_ as a,o as s,c as t,U as e}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Stats","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/stats.md","filePath":"core/maths/stats.md","lastUpdated":1688123549000}'),n={name:"core/maths/stats.md"},o=e("",63),l=[o];function p(r,c,d,i,h,y){return s(),t("div",null,l)}const F=a(n,[["render",p]]);export{D as __pageData,F as default};
diff --git a/docs/assets/core_maths_trigonometry.md.c077acb3.js b/docs/assets/core_maths_trigonometry.md.78849101.js
similarity index 98%
rename from docs/assets/core_maths_trigonometry.md.c077acb3.js
rename to docs/assets/core_maths_trigonometry.md.78849101.js
index 78d9f301..3f37388b 100644
--- a/docs/assets/core_maths_trigonometry.md.c077acb3.js
+++ b/docs/assets/core_maths_trigonometry.md.78849101.js
@@ -1,4 +1,4 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"Trigonometry","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/trigonometry.md","filePath":"core/maths/trigonometry.md","lastUpdated":1666370076000}'),o={name:"core/maths/trigonometry.md"},n=s(`

Trigonometry

This page is about the Trigonometry class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Trigonometry class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GetOpposedSideFrom(triangleSide, angle, value)

Definition

Gets the length of the opposed side of a specific angle, from the length of either the hypotenuse or the adjacent side of the angle.

Arguments

TypeNameMeaning
TriangleSidestriangleSideThe side of the triangle.
doubleangleThe value of the angle.
doublevalueThe length of the chosen side.

WARNING

If triangleSide is equal to TriangleSides.Opposed, an Exception will be thrown.

Usage

c#
using PeyrSharp.Core.Maths;
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"Trigonometry","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/trigonometry.md","filePath":"core/maths/trigonometry.md","lastUpdated":1666370076000}'),o={name:"core/maths/trigonometry.md"},n=s(`

Trigonometry

This page is about the Trigonometry class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Trigonometry class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GetOpposedSideFrom(triangleSide, angle, value)

Definition

Gets the length of the opposed side of a specific angle, from the length of either the hypotenuse or the adjacent side of the angle.

Arguments

TypeNameMeaning
TriangleSidestriangleSideThe side of the triangle.
doubleangleThe value of the angle.
doublevalueThe length of the chosen side.

WARNING

If triangleSide is equal to TriangleSides.Opposed, an Exception will be thrown.

Usage

c#
using PeyrSharp.Core.Maths;
 using PeyrSharp.Enums;
 
 double opposed = Trigonometry.GetOpposedSideFrom(TriangleSides.Adjacent, 1.05, 5);
diff --git a/docs/assets/core_maths_trigonometry.md.c077acb3.lean.js b/docs/assets/core_maths_trigonometry.md.78849101.lean.js
similarity index 71%
rename from docs/assets/core_maths_trigonometry.md.c077acb3.lean.js
rename to docs/assets/core_maths_trigonometry.md.78849101.lean.js
index af8be4ff..066ecdcb 100644
--- a/docs/assets/core_maths_trigonometry.md.c077acb3.lean.js
+++ b/docs/assets/core_maths_trigonometry.md.78849101.lean.js
@@ -1 +1 @@
-import{_ as e,o as a,c as t,R as s}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"Trigonometry","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/trigonometry.md","filePath":"core/maths/trigonometry.md","lastUpdated":1666370076000}'),o={name:"core/maths/trigonometry.md"},n=s("",31),l=[n];function r(d,i,p,c,h,g){return a(),t("div",null,l)}const m=e(o,[["render",r]]);export{u as __pageData,m as default};
+import{_ as e,o as a,c as t,U as s}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"Trigonometry","description":"","frontmatter":{},"headers":[],"relativePath":"core/maths/trigonometry.md","filePath":"core/maths/trigonometry.md","lastUpdated":1666370076000}'),o={name:"core/maths/trigonometry.md"},n=s("",31),l=[n];function r(d,i,p,c,h,g){return a(),t("div",null,l)}const m=e(o,[["render",r]]);export{u as __pageData,m as default};
diff --git a/docs/assets/core_password.md.1daf009f.js b/docs/assets/core_password.md.a9888b08.js
similarity index 99%
rename from docs/assets/core_password.md.1daf009f.js
rename to docs/assets/core_password.md.a9888b08.js
index 8c535c0e..71acc876 100644
--- a/docs/assets/core_password.md.1daf009f.js
+++ b/docs/assets/core_password.md.a9888b08.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as e,R as t}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Password","description":"","frontmatter":{},"headers":[],"relativePath":"core/password.md","filePath":"core/password.md","lastUpdated":1665311928000}'),n={name:"core/password.md"},o=t(`

Password

This page is about the Password class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Password class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GenerateAsync(length, chars, separator)

Definition

The GenerateAsync() method generates a password of a specific length, with specific characters asynchronously.

Arguments

TypeNameMeaning
intlengthThe length of the password.
stringcharactersThe characters that can be included in the password. Separated with a unique separator.
stringseparatorThe separator used to separate the specified characters.

Usage

c#
using PeyrSharp.Core;
+import{_ as s,o as a,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Password","description":"","frontmatter":{},"headers":[],"relativePath":"core/password.md","filePath":"core/password.md","lastUpdated":1665311928000}'),n={name:"core/password.md"},o=t(`

Password

This page is about the Password class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Password class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GenerateAsync(length, chars, separator)

Definition

The GenerateAsync() method generates a password of a specific length, with specific characters asynchronously.

Arguments

TypeNameMeaning
intlengthThe length of the password.
stringcharactersThe characters that can be included in the password. Separated with a unique separator.
stringseparatorThe separator used to separate the specified characters.

Usage

c#
using PeyrSharp.Core;
 
 private async void Main()
 {
diff --git a/docs/assets/core_password.md.1daf009f.lean.js b/docs/assets/core_password.md.a9888b08.lean.js
similarity index 69%
rename from docs/assets/core_password.md.1daf009f.lean.js
rename to docs/assets/core_password.md.a9888b08.lean.js
index 7e0e58cb..c3bfecb5 100644
--- a/docs/assets/core_password.md.1daf009f.lean.js
+++ b/docs/assets/core_password.md.a9888b08.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as e,R as t}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Password","description":"","frontmatter":{},"headers":[],"relativePath":"core/password.md","filePath":"core/password.md","lastUpdated":1665311928000}'),n={name:"core/password.md"},o=t("",35),l=[o];function r(p,c,d,i,h,y){return a(),e("div",null,l)}const C=s(n,[["render",r]]);export{F as __pageData,C as default};
+import{_ as s,o as a,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Password","description":"","frontmatter":{},"headers":[],"relativePath":"core/password.md","filePath":"core/password.md","lastUpdated":1665311928000}'),n={name:"core/password.md"},o=t("",35),l=[o];function r(p,c,d,i,h,y){return a(),e("div",null,l)}const C=s(n,[["render",r]]);export{F as __pageData,C as default};
diff --git a/docs/assets/core_statusinfo.md.038b494a.js b/docs/assets/core_statusinfo.md.a51639ad.js
similarity index 97%
rename from docs/assets/core_statusinfo.md.038b494a.js
rename to docs/assets/core_statusinfo.md.a51639ad.js
index 28c9e2b0..36d127b1 100644
--- a/docs/assets/core_statusinfo.md.038b494a.js
+++ b/docs/assets/core_statusinfo.md.a51639ad.js
@@ -1 +1 @@
-import{_ as t,o as a,c as e,R as s}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"StatusInfo","description":"","frontmatter":{},"headers":[],"relativePath":"core/statusinfo.md","filePath":"core/statusinfo.md","lastUpdated":1683446294000}'),o={name:"core/statusinfo.md"},n=s('

StatusInfo

This page is about the StatusInfo class available in PeyrSharp.Core. You can find here all of its methods.

Compatibility

The StatusInfo class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Properties

StatusCode

Definition

c#
public int StatusCode { get; set; }

Gets or sets the status code that indicates the outcome of the request.

StatusDescription

Definition

c#
public string StatusDescription { get; set; }

Gets or sets the status description that provides a human-readable message of the status code.

StatusType

Definition

c#
public StatusCodes StatusType { get; set; }

Gets or sets the status type that categorizes the status code into informational, success, redirection, client error, or server error. The StatusCodes is an enumeration representing the type of HTTP status codes that can be returned.

',18),r=[n];function i(l,c,p,d,h,u){return a(),e("div",null,r)}const D=t(o,[["render",i]]);export{y as __pageData,D as default}; +import{_ as t,o as a,c as e,U as s}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"StatusInfo","description":"","frontmatter":{},"headers":[],"relativePath":"core/statusinfo.md","filePath":"core/statusinfo.md","lastUpdated":1683446294000}'),o={name:"core/statusinfo.md"},n=s('

StatusInfo

This page is about the StatusInfo class available in PeyrSharp.Core. You can find here all of its methods.

Compatibility

The StatusInfo class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Properties

StatusCode

Definition

c#
public int StatusCode { get; set; }

Gets or sets the status code that indicates the outcome of the request.

StatusDescription

Definition

c#
public string StatusDescription { get; set; }

Gets or sets the status description that provides a human-readable message of the status code.

StatusType

Definition

c#
public StatusCodes StatusType { get; set; }

Gets or sets the status type that categorizes the status code into informational, success, redirection, client error, or server error. The StatusCodes is an enumeration representing the type of HTTP status codes that can be returned.

',18),r=[n];function i(l,c,p,d,h,u){return a(),e("div",null,r)}const D=t(o,[["render",i]]);export{y as __pageData,D as default}; diff --git a/docs/assets/core_statusinfo.md.038b494a.lean.js b/docs/assets/core_statusinfo.md.a51639ad.lean.js similarity index 69% rename from docs/assets/core_statusinfo.md.038b494a.lean.js rename to docs/assets/core_statusinfo.md.a51639ad.lean.js index adf5ab5d..3caef440 100644 --- a/docs/assets/core_statusinfo.md.038b494a.lean.js +++ b/docs/assets/core_statusinfo.md.a51639ad.lean.js @@ -1 +1 @@ -import{_ as t,o as a,c as e,R as s}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"StatusInfo","description":"","frontmatter":{},"headers":[],"relativePath":"core/statusinfo.md","filePath":"core/statusinfo.md","lastUpdated":1683446294000}'),o={name:"core/statusinfo.md"},n=s("",18),r=[n];function i(l,c,p,d,h,u){return a(),e("div",null,r)}const D=t(o,[["render",i]]);export{y as __pageData,D as default}; +import{_ as t,o as a,c as e,U as s}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"StatusInfo","description":"","frontmatter":{},"headers":[],"relativePath":"core/statusinfo.md","filePath":"core/statusinfo.md","lastUpdated":1683446294000}'),o={name:"core/statusinfo.md"},n=s("",18),r=[n];function i(l,c,p,d,h,u){return a(),e("div",null,r)}const D=t(o,[["render",i]]);export{y as __pageData,D as default}; diff --git a/docs/assets/core_xml-helper.md.db6a1186.js b/docs/assets/core_xml-helper.md.db6a1186.js new file mode 100644 index 00000000..d1ed3315 --- /dev/null +++ b/docs/assets/core_xml-helper.md.db6a1186.js @@ -0,0 +1,53 @@ +import{_ as s,o as a,c as n,U as l}from"./chunks/framework.1eef7d9b.js";const d=JSON.parse('{"title":"XmlHelper","description":"","frontmatter":{},"headers":[],"relativePath":"core/xml-helper.md","filePath":"core/xml-helper.md","lastUpdated":1690620899000}'),o={name:"core/xml-helper.md"},e=l(`

XmlHelper

This page is about the XmlHelper class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The XmlHelper class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

LoadFromXml<T>(path)

Definition

The LoadFromXml() method loads an object of type T from an XML file at the specified path. If the file does not exist, a new instance of type T will be created and saved to the file using the SaveToXml() method before returning it.

Type Parameters

TypeDescription
TThe type of object to be saved.

Parameters

TypeNameMeaning
stringpathThe path of the XML file to load or create.

Returns

  • The loaded object of type T if the file exists and can be deserialized successfully.
  • A new instance of type T if the file does not exist and can be created and saved successfully.
  • null if an exception occurs during loading or saving.

Exceptions

  • Exception: If an error occurs during the loading or saving process.

Usage

csharp
using PeyrSharp.Core;
+using System;
+using System.IO;
+using System.Xml.Serialization;
+
+private static void Main()
+{
+    string path = "path/to/xml/file.xml";
+
+    // Load an object from the XML file
+    MyObject obj = XmlHelper.LoadFromXml<MyObject>(path);
+
+    if (obj != null)
+    {
+        // Object loaded successfully
+        Console.WriteLine("Object loaded: " + obj.ToString());
+    }
+    else
+    {
+        // Error occurred during loading or saving
+        Console.WriteLine("Failed to load object.");
+    }
+}
+
+// Example class for serialization
+public class MyObject
+{
+    public string Name { get; set; }
+    public int Age { get; set; }
+
+    public override string ToString()
+    {
+        return $"Name: {Name}, Age: {Age}";
+    }
+}

SaveToXml<T>(obj, path)

Definition

The SaveToXml() method saves an object of type T to an XML file at the specified path.

Type Parameters

TypeDescription
TThe type of object to be saved.

Arguments

TypeNameDescription
TobjThe object to be saved.
stringpathThe path of the XML file to save the object.

Returns

  • bool: true if the object is successfully serialized and saved to the file; otherwise, false.

Usage

csharp
using PeyrSharp.Core;
+using System.Xml.Serialization;
+using System.IO;
+
+public class MyClass
+{
+    public int MyProperty { get; set; }
+}
+
+public class Program
+{
+    private static void Main()
+    {
+        MyClass myObject = new MyClass { MyProperty = 123 };
+
+        // Save the object to an XML file
+        bool success = XmlHelper.SaveToXml(myObject, "path/to/file.xml");
+    }
+}
`,31),t=[e];function p(r,c,i,y,D,C){return a(),n("div",null,t)}const A=s(o,[["render",p]]);export{d as __pageData,A as default}; diff --git a/docs/assets/core_xml-helper.md.db6a1186.lean.js b/docs/assets/core_xml-helper.md.db6a1186.lean.js new file mode 100644 index 00000000..28189f65 --- /dev/null +++ b/docs/assets/core_xml-helper.md.db6a1186.lean.js @@ -0,0 +1 @@ +import{_ as s,o as a,c as n,U as l}from"./chunks/framework.1eef7d9b.js";const d=JSON.parse('{"title":"XmlHelper","description":"","frontmatter":{},"headers":[],"relativePath":"core/xml-helper.md","filePath":"core/xml-helper.md","lastUpdated":1690620899000}'),o={name:"core/xml-helper.md"},e=l("",31),t=[e];function p(r,c,i,y,D,C){return a(),n("div",null,t)}const A=s(o,[["render",p]]);export{d as __pageData,A as default}; diff --git a/docs/assets/enumerations.md.6c2b75e1.js b/docs/assets/enumerations.md.ae8efbeb.js similarity index 99% rename from docs/assets/enumerations.md.6c2b75e1.js rename to docs/assets/enumerations.md.ae8efbeb.js index 4ccc6887..938964ad 100644 --- a/docs/assets/enumerations.md.6c2b75e1.js +++ b/docs/assets/enumerations.md.ae8efbeb.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as e,R as n}from"./chunks/framework.fed62f4c.js";const h=JSON.parse('{"title":"Enumerations","description":"","frontmatter":{},"headers":[],"relativePath":"enumerations.md","filePath":"enumerations.md","lastUpdated":1680429306000}'),t={name:"enumerations.md"},o=n(`

Enumerations

This page is about the enumerations available in PeyrSharp.Enums. They are grouped by category.

Compatibility

Enumerations are part of the PeyrSharp.Enums module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Enums
Framework.NET 5.NET 6.NET 7
Enums

Converters

StorageUnits

Definition

The StorageUnits enumeration represents all possible numeric storage units. It contains the following values:

ValueNameMeaning
0ByteThe byte unit. (b)
1KilobyteThe kilobyte unit. (kb)
2MegabyteThe megabyte unit. (mb)
3GigabyteThe gigabyte unit. (gb)
4TerabyteThe terabyte unit. (tb)
5PetabyteThe petabyte unit. (pb)

Example

c#
public static double ToPetabyte(double value, StorageUnits unit)
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const h=JSON.parse('{"title":"Enumerations","description":"","frontmatter":{},"headers":[],"relativePath":"enumerations.md","filePath":"enumerations.md","lastUpdated":1680429306000}'),t={name:"enumerations.md"},o=n(`

Enumerations

This page is about the enumerations available in PeyrSharp.Enums. They are grouped by category.

Compatibility

Enumerations are part of the PeyrSharp.Enums module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Enums
Framework.NET 5.NET 6.NET 7
Enums

Converters

StorageUnits

Definition

The StorageUnits enumeration represents all possible numeric storage units. It contains the following values:

ValueNameMeaning
0ByteThe byte unit. (b)
1KilobyteThe kilobyte unit. (kb)
2MegabyteThe megabyte unit. (mb)
3GigabyteThe gigabyte unit. (gb)
4TerabyteThe terabyte unit. (tb)
5PetabyteThe petabyte unit. (pb)

Example

c#
public static double ToPetabyte(double value, StorageUnits unit)
 {
     if (unit == StorageUnits.Terabyte)
     {
diff --git a/docs/assets/enumerations.md.6c2b75e1.lean.js b/docs/assets/enumerations.md.ae8efbeb.lean.js
similarity index 69%
rename from docs/assets/enumerations.md.6c2b75e1.lean.js
rename to docs/assets/enumerations.md.ae8efbeb.lean.js
index 5ba92663..1d91ac6e 100644
--- a/docs/assets/enumerations.md.6c2b75e1.lean.js
+++ b/docs/assets/enumerations.md.ae8efbeb.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as e,R as n}from"./chunks/framework.fed62f4c.js";const h=JSON.parse('{"title":"Enumerations","description":"","frontmatter":{},"headers":[],"relativePath":"enumerations.md","filePath":"enumerations.md","lastUpdated":1680429306000}'),t={name:"enumerations.md"},o=n("",78),l=[o];function p(r,c,i,d,D,y){return a(),e("div",null,l)}const C=s(t,[["render",p]]);export{h as __pageData,C as default};
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const h=JSON.parse('{"title":"Enumerations","description":"","frontmatter":{},"headers":[],"relativePath":"enumerations.md","filePath":"enumerations.md","lastUpdated":1680429306000}'),t={name:"enumerations.md"},o=n("",78),l=[o];function p(r,c,i,d,D,y){return a(),e("div",null,l)}const C=s(t,[["render",p]]);export{h as __pageData,C as default};
diff --git a/docs/assets/env.md.f9dbcaff.js b/docs/assets/env.md.7a083ce5.js
similarity index 88%
rename from docs/assets/env.md.f9dbcaff.js
rename to docs/assets/env.md.7a083ce5.js
index 14fbd037..10dd4a06 100644
--- a/docs/assets/env.md.f9dbcaff.js
+++ b/docs/assets/env.md.7a083ce5.js
@@ -1 +1 @@
-import{_ as t,o as e,c as a,R as o}from"./chunks/framework.fed62f4c.js";const f=JSON.parse('{"title":"Env","description":"","frontmatter":{},"headers":[],"relativePath":"env.md","filePath":"env.md","lastUpdated":1673089222000}'),s={name:"env.md"},r=o('

Env

This page is about the PeyrSharp.Env module.

Compatibility

The PeyrSharp.Env module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env⚠️⚠️
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Classes

',8),l=[r];function d(i,n,h,c,m,p){return e(),a("div",null,l)}const v=t(s,[["render",d]]);export{f as __pageData,v as default}; +import{_ as t,o as e,c as a,U as o}from"./chunks/framework.1eef7d9b.js";const f=JSON.parse('{"title":"Env","description":"","frontmatter":{},"headers":[],"relativePath":"env.md","filePath":"env.md","lastUpdated":1673089188000}'),s={name:"env.md"},r=o('

Env

This page is about the PeyrSharp.Env module.

Compatibility

The PeyrSharp.Env module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env⚠️⚠️
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Classes

',8),l=[r];function d(i,n,h,c,m,p){return e(),a("div",null,l)}const v=t(s,[["render",d]]);export{f as __pageData,v as default}; diff --git a/docs/assets/env.md.7a083ce5.lean.js b/docs/assets/env.md.7a083ce5.lean.js new file mode 100644 index 00000000..82c121bd --- /dev/null +++ b/docs/assets/env.md.7a083ce5.lean.js @@ -0,0 +1 @@ +import{_ as t,o as e,c as a,U as o}from"./chunks/framework.1eef7d9b.js";const f=JSON.parse('{"title":"Env","description":"","frontmatter":{},"headers":[],"relativePath":"env.md","filePath":"env.md","lastUpdated":1673089188000}'),s={name:"env.md"},r=o("",8),l=[r];function d(i,n,h,c,m,p){return e(),a("div",null,l)}const v=t(s,[["render",d]]);export{f as __pageData,v as default}; diff --git a/docs/assets/env.md.f9dbcaff.lean.js b/docs/assets/env.md.f9dbcaff.lean.js deleted file mode 100644 index d06a2ea1..00000000 --- a/docs/assets/env.md.f9dbcaff.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,o as e,c as a,R as o}from"./chunks/framework.fed62f4c.js";const f=JSON.parse('{"title":"Env","description":"","frontmatter":{},"headers":[],"relativePath":"env.md","filePath":"env.md","lastUpdated":1673089222000}'),s={name:"env.md"},r=o("",8),l=[r];function d(i,n,h,c,m,p){return e(),a("div",null,l)}const v=t(s,[["render",d]]);export{f as __pageData,v as default}; diff --git a/docs/assets/env_filesys.md.830df3a3.js b/docs/assets/env_filesys.md.8589c991.js similarity index 99% rename from docs/assets/env_filesys.md.830df3a3.js rename to docs/assets/env_filesys.md.8589c991.js index 2ab5769c..b38f2b67 100644 --- a/docs/assets/env_filesys.md.830df3a3.js +++ b/docs/assets/env_filesys.md.8589c991.js @@ -1,4 +1,4 @@ -import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"FileSys","description":"","frontmatter":{},"headers":[],"relativePath":"env/filesys.md","filePath":"env/filesys.md","lastUpdated":1675590267000}'),t={name:"env/filesys.md"},o=n(`

FileSys

This page is about the FileSys class available in PeyrSharp.Env. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The FileSys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

GetAvailableSpace(drive, unit)

Definition

Gets the amount of available storage on a specified drive. It returns double.

Arguments

TypeNameMeaning
stringdriveThe drive letter or name to get the amount of available space.
StorageUnitsunitThe unit of the returned result.

Usage

c#
using PeyrSharp.Enums;
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"FileSys","description":"","frontmatter":{},"headers":[],"relativePath":"env/filesys.md","filePath":"env/filesys.md","lastUpdated":1675590267000}'),t={name:"env/filesys.md"},o=n(`

FileSys

This page is about the FileSys class available in PeyrSharp.Env. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The FileSys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

GetAvailableSpace(drive, unit)

Definition

Gets the amount of available storage on a specified drive. It returns double.

Arguments

TypeNameMeaning
stringdriveThe drive letter or name to get the amount of available space.
StorageUnitsunitThe unit of the returned result.

Usage

c#
using PeyrSharp.Enums;
 using PeyrSharp.Env;
 
 double space = FileSys.GetAvailableSpace("C:/", StorageUnits.Gigabyte);

GetAvailableSpace(driveInfo, unit)

Definition

Gets the amount of available storage on a specified drive. It returns double.

Arguments

TypeNameMeaning
DriveInfodriveInfoThe DriveInfo object to get the amount of available space.
StorageUnitsunitThe unit of the returned result.

Usage

c#
using PeyrSharp.Enums;
diff --git a/docs/assets/env_filesys.md.830df3a3.lean.js b/docs/assets/env_filesys.md.8589c991.lean.js
similarity index 68%
rename from docs/assets/env_filesys.md.830df3a3.lean.js
rename to docs/assets/env_filesys.md.8589c991.lean.js
index bdccb9a5..068294c1 100644
--- a/docs/assets/env_filesys.md.830df3a3.lean.js
+++ b/docs/assets/env_filesys.md.8589c991.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"FileSys","description":"","frontmatter":{},"headers":[],"relativePath":"env/filesys.md","filePath":"env/filesys.md","lastUpdated":1675590267000}'),t={name:"env/filesys.md"},o=n("",126),l=[o];function p(r,i,c,d,D,y){return s(),e("div",null,l)}const u=a(t,[["render",p]]);export{F as __pageData,u as default};
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"FileSys","description":"","frontmatter":{},"headers":[],"relativePath":"env/filesys.md","filePath":"env/filesys.md","lastUpdated":1675590267000}'),t={name:"env/filesys.md"},o=n("",126),l=[o];function p(r,i,c,d,D,y){return s(),e("div",null,l)}const u=a(t,[["render",p]]);export{F as __pageData,u as default};
diff --git a/docs/assets/env_logger.md.8299eaba.js b/docs/assets/env_logger.md.cbed7f54.js
similarity index 98%
rename from docs/assets/env_logger.md.8299eaba.js
rename to docs/assets/env_logger.md.cbed7f54.js
index 34174d4b..cf676905 100644
--- a/docs/assets/env_logger.md.8299eaba.js
+++ b/docs/assets/env_logger.md.cbed7f54.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as t}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Logger","description":"","frontmatter":{},"headers":[],"relativePath":"env/logger.md","filePath":"env/logger.md","lastUpdated":1680429326000}'),o={name:"env/logger.md"},n=t(`

Logger

This page is about the Logger class available in PeyrSharp.Env. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Logger class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

Log(message, filePath, dateTime)

Definition

The Log() method logs a specific message alongside a timestamp into a file. This method does not return a value (void).

INFO

You can call this method multiple times on the same file and it will append the message to it.

Arguments

TypeNameMeaning
stringmessageThe message or text that needs to be logged.
stringfilePathThe path where the file should be written.
DateTimedateTimeThe timestamp of the log, the time when the log was made.

Usage

c#
using PeyrSharp.Env;
+import{_ as a,o as s,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Logger","description":"","frontmatter":{},"headers":[],"relativePath":"env/logger.md","filePath":"env/logger.md","lastUpdated":1680429326000}'),o={name:"env/logger.md"},n=t(`

Logger

This page is about the Logger class available in PeyrSharp.Env. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Logger class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

Log(message, filePath, dateTime)

Definition

The Log() method logs a specific message alongside a timestamp into a file. This method does not return a value (void).

INFO

You can call this method multiple times on the same file and it will append the message to it.

Arguments

TypeNameMeaning
stringmessageThe message or text that needs to be logged.
stringfilePathThe path where the file should be written.
DateTimedateTimeThe timestamp of the log, the time when the log was made.

Usage

c#
using PeyrSharp.Env;
 
 Logger.Log("Hello", @"C:\\Logs\\log1.txt", DateTime.Now)
 // The line above will generate a file with the following content:
diff --git a/docs/assets/env_logger.md.8299eaba.lean.js b/docs/assets/env_logger.md.cbed7f54.lean.js
similarity index 68%
rename from docs/assets/env_logger.md.8299eaba.lean.js
rename to docs/assets/env_logger.md.cbed7f54.lean.js
index 59c20d83..c4a9082e 100644
--- a/docs/assets/env_logger.md.8299eaba.lean.js
+++ b/docs/assets/env_logger.md.cbed7f54.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as t}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Logger","description":"","frontmatter":{},"headers":[],"relativePath":"env/logger.md","filePath":"env/logger.md","lastUpdated":1680429326000}'),o={name:"env/logger.md"},n=t("",30),l=[n];function p(r,c,i,d,h,g){return s(),e("div",null,l)}const m=a(o,[["render",p]]);export{y as __pageData,m as default};
+import{_ as a,o as s,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Logger","description":"","frontmatter":{},"headers":[],"relativePath":"env/logger.md","filePath":"env/logger.md","lastUpdated":1680429326000}'),o={name:"env/logger.md"},n=t("",30),l=[n];function p(r,c,i,d,h,g){return s(),e("div",null,l)}const m=a(o,[["render",p]]);export{y as __pageData,m as default};
diff --git a/docs/assets/env_system.md.eb22e65d.js b/docs/assets/env_system.md.45d34ea7.js
similarity index 99%
rename from docs/assets/env_system.md.eb22e65d.js
rename to docs/assets/env_system.md.45d34ea7.js
index df569917..7ba7d898 100644
--- a/docs/assets/env_system.md.eb22e65d.js
+++ b/docs/assets/env_system.md.45d34ea7.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,R as e}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Sys","description":"","frontmatter":{},"headers":[],"relativePath":"env/system.md","filePath":"env/system.md","lastUpdated":1688123577000}'),o={name:"env/system.md"},l=e(`

Sys

This page is about the Sys class available in PeyrSharp.Env. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The Sys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env⚠️⚠️
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

ExecuteAsAdmin(process)

Definition

Executes a program in administrator mode.

WARNING

This method only works on Windows.

Arguments

TypeNameMeaning
ProcessprocessThe process to launch as admin.

Usage

c#
using PeyrSharp.Env;
+import{_ as s,o as a,c as n,U as e}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Sys","description":"","frontmatter":{},"headers":[],"relativePath":"env/system.md","filePath":"env/system.md","lastUpdated":1688123577000}'),o={name:"env/system.md"},l=e(`

Sys

This page is about the Sys class available in PeyrSharp.Env. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The Sys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env⚠️⚠️
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

ExecuteAsAdmin(process)

Definition

Executes a program in administrator mode.

WARNING

This method only works on Windows.

Arguments

TypeNameMeaning
ProcessprocessThe process to launch as admin.

Usage

c#
using PeyrSharp.Env;
 
 // Define a process
 Process p = new();
diff --git a/docs/assets/env_system.md.eb22e65d.lean.js b/docs/assets/env_system.md.45d34ea7.lean.js
similarity index 68%
rename from docs/assets/env_system.md.eb22e65d.lean.js
rename to docs/assets/env_system.md.45d34ea7.lean.js
index 8c2250e4..9cc3efeb 100644
--- a/docs/assets/env_system.md.eb22e65d.lean.js
+++ b/docs/assets/env_system.md.45d34ea7.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,R as e}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Sys","description":"","frontmatter":{},"headers":[],"relativePath":"env/system.md","filePath":"env/system.md","lastUpdated":1688123577000}'),o={name:"env/system.md"},l=e("",99),t=[l];function p(r,c,i,y,d,D){return a(),n("div",null,t)}const C=s(o,[["render",p]]);export{F as __pageData,C as default};
+import{_ as s,o as a,c as n,U as e}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Sys","description":"","frontmatter":{},"headers":[],"relativePath":"env/system.md","filePath":"env/system.md","lastUpdated":1688123577000}'),o={name:"env/system.md"},l=e("",99),t=[l];function p(r,c,i,y,d,D){return a(),n("div",null,t)}const C=s(o,[["render",p]]);export{F as __pageData,C as default};
diff --git a/docs/assets/env_update.md.b9700a57.js b/docs/assets/env_update.md.a1273893.js
similarity index 97%
rename from docs/assets/env_update.md.b9700a57.js
rename to docs/assets/env_update.md.a1273893.js
index 7c59cbef..ffafd774 100644
--- a/docs/assets/env_update.md.b9700a57.js
+++ b/docs/assets/env_update.md.a1273893.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as e,R as t}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Update","description":"","frontmatter":{},"headers":[],"relativePath":"env/update.md","filePath":"env/update.md","lastUpdated":1683354316000}'),n={name:"env/update.md"},o=t(`

Update

This page is about the Update class available in PeyrSharp.Env. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Update class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

GetLastVersionAsync(url)

Definition

Downloads the content of remote file as string. The remote file should contain the last version text. Do not provide the URL of an HTML page.

INFO

This method is asynchronous and awaitable.

Arguments

TypeNameMeaning
stringurlLink of the file where the latest version is stored.

Usage

c#
using PeyrSharp.Env;
+import{_ as s,o as a,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Update","description":"","frontmatter":{},"headers":[],"relativePath":"env/update.md","filePath":"env/update.md","lastUpdated":1683354307000}'),n={name:"env/update.md"},o=t(`

Update

This page is about the Update class available in PeyrSharp.Env. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Update class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

GetLastVersionAsync(url)

Definition

Downloads the content of remote file as string. The remote file should contain the last version text. Do not provide the URL of an HTML page.

INFO

This method is asynchronous and awaitable.

Arguments

TypeNameMeaning
stringurlLink of the file where the latest version is stored.

Usage

c#
using PeyrSharp.Env;
 
 private async void Main()
 {
diff --git a/docs/assets/env_update.md.b9700a57.lean.js b/docs/assets/env_update.md.a1273893.lean.js
similarity index 52%
rename from docs/assets/env_update.md.b9700a57.lean.js
rename to docs/assets/env_update.md.a1273893.lean.js
index f4fd31c9..05d01eef 100644
--- a/docs/assets/env_update.md.b9700a57.lean.js
+++ b/docs/assets/env_update.md.a1273893.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as e,R as t}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"Update","description":"","frontmatter":{},"headers":[],"relativePath":"env/update.md","filePath":"env/update.md","lastUpdated":1683354316000}'),n={name:"env/update.md"},o=t("",24),l=[o];function p(r,c,i,d,h,y){return a(),e("div",null,l)}const u=s(n,[["render",p]]);export{F as __pageData,u as default};
+import{_ as s,o as a,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"Update","description":"","frontmatter":{},"headers":[],"relativePath":"env/update.md","filePath":"env/update.md","lastUpdated":1683354307000}'),n={name:"env/update.md"},o=t("",24),l=[o];function p(r,c,i,d,h,y){return a(),e("div",null,l)}const u=s(n,[["render",p]]);export{F as __pageData,u as default};
diff --git a/docs/assets/env_uwpapp.md.772e12c1.js b/docs/assets/env_uwpapp.md.dcba768f.js
similarity index 98%
rename from docs/assets/env_uwpapp.md.772e12c1.js
rename to docs/assets/env_uwpapp.md.dcba768f.js
index 28fdc72b..9c2f55b3 100644
--- a/docs/assets/env_uwpapp.md.772e12c1.js
+++ b/docs/assets/env_uwpapp.md.dcba768f.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as p,R as e}from"./chunks/framework.fed62f4c.js";const A=JSON.parse('{"title":"UwpApp","description":"","frontmatter":{},"headers":[],"relativePath":"env/uwpapp.md","filePath":"env/uwpapp.md","lastUpdated":1688123577000}'),n={name:"env/uwpapp.md"},o=e(`

UwpApp

This page is about the UwpApp class available in PeyrSharp.Env. It Represents a simplified version of a UWP app object.

Compatibility

The UwpApp class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Properties

Name

Definition

c#
public static string Name { get; init; }

The name of the UWP app.

Usage

c#
// Create a UwpApp object
+import{_ as a,o as s,c as p,U as e}from"./chunks/framework.1eef7d9b.js";const A=JSON.parse('{"title":"UwpApp","description":"","frontmatter":{},"headers":[],"relativePath":"env/uwpapp.md","filePath":"env/uwpapp.md","lastUpdated":1688123577000}'),n={name:"env/uwpapp.md"},o=e(`

UwpApp

This page is about the UwpApp class available in PeyrSharp.Env. It Represents a simplified version of a UWP app object.

Compatibility

The UwpApp class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Properties

Name

Definition

c#
public static string Name { get; init; }

The name of the UWP app.

Usage

c#
// Create a UwpApp object
 UwpApp uwpApp = new UwpApp("MyApp", "com.example.myapp");
 
 // Access the properties of the UwpApp object
diff --git a/docs/assets/env_uwpapp.md.772e12c1.lean.js b/docs/assets/env_uwpapp.md.dcba768f.lean.js
similarity index 68%
rename from docs/assets/env_uwpapp.md.772e12c1.lean.js
rename to docs/assets/env_uwpapp.md.dcba768f.lean.js
index e050774a..760697f4 100644
--- a/docs/assets/env_uwpapp.md.772e12c1.lean.js
+++ b/docs/assets/env_uwpapp.md.dcba768f.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as p,R as e}from"./chunks/framework.fed62f4c.js";const A=JSON.parse('{"title":"UwpApp","description":"","frontmatter":{},"headers":[],"relativePath":"env/uwpapp.md","filePath":"env/uwpapp.md","lastUpdated":1688123577000}'),n={name:"env/uwpapp.md"},o=e("",19),t=[o];function l(r,c,i,y,d,D){return s(),p("div",null,t)}const C=a(n,[["render",l]]);export{A as __pageData,C as default};
+import{_ as a,o as s,c as p,U as e}from"./chunks/framework.1eef7d9b.js";const A=JSON.parse('{"title":"UwpApp","description":"","frontmatter":{},"headers":[],"relativePath":"env/uwpapp.md","filePath":"env/uwpapp.md","lastUpdated":1688123577000}'),n={name:"env/uwpapp.md"},o=e("",19),t=[o];function l(r,c,i,y,d,D){return s(),p("div",null,t)}const C=a(n,[["render",l]]);export{A as __pageData,C as default};
diff --git a/docs/assets/exceptions.md.e7e68fb6.js b/docs/assets/exceptions.md.aae9c983.js
similarity index 98%
rename from docs/assets/exceptions.md.e7e68fb6.js
rename to docs/assets/exceptions.md.aae9c983.js
index 9fc1ed86..4ca42e1f 100644
--- a/docs/assets/exceptions.md.e7e68fb6.js
+++ b/docs/assets/exceptions.md.aae9c983.js
@@ -1,4 +1,4 @@
-import{_ as a,o as e,c as s,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Exceptions","description":"","frontmatter":{},"headers":[],"relativePath":"exceptions.md","filePath":"exceptions.md","lastUpdated":1665311928000}'),o={name:"exceptions.md"},t=n(`

Exceptions

This page is about the exceptions available in PeyrSharp.Exceptions. They are grouped by category.

Compatibility

Exceptions are part of the PeyrSharp.Exceptions module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Exceptions
Framework.NET 5.NET 6.NET 7
Exceptions

Converters

RGBInvalidValueException

Definition

The RGBInvalidValueException is an exception used in the Converters class when you provide an invalid value for a RGB color.

Usage

c#
using PeyrSharp.Exceptions;
+import{_ as a,o as e,c as s,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Exceptions","description":"","frontmatter":{},"headers":[],"relativePath":"exceptions.md","filePath":"exceptions.md","lastUpdated":1665311928000}'),o={name:"exceptions.md"},t=n(`

Exceptions

This page is about the exceptions available in PeyrSharp.Exceptions. They are grouped by category.

Compatibility

Exceptions are part of the PeyrSharp.Exceptions module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Exceptions
Framework.NET 5.NET 6.NET 7
Exceptions

Converters

RGBInvalidValueException

Definition

The RGBInvalidValueException is an exception used in the Converters class when you provide an invalid value for a RGB color.

Usage

c#
using PeyrSharp.Exceptions;
 
 throw new RGBInvalidValueException("Please provide correct RGB values.");

HEXInvalidValueException

Definition

The HEXInvalidValueException is an exception used in the Converters class when you provide an invalid value for a HEX color.

Usage

c#
using PeyrSharp.Exceptions;
 
diff --git a/docs/assets/exceptions.md.e7e68fb6.lean.js b/docs/assets/exceptions.md.aae9c983.lean.js
similarity index 68%
rename from docs/assets/exceptions.md.e7e68fb6.lean.js
rename to docs/assets/exceptions.md.aae9c983.lean.js
index d7a53302..a064c48d 100644
--- a/docs/assets/exceptions.md.e7e68fb6.lean.js
+++ b/docs/assets/exceptions.md.aae9c983.lean.js
@@ -1 +1 @@
-import{_ as a,o as e,c as s,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Exceptions","description":"","frontmatter":{},"headers":[],"relativePath":"exceptions.md","filePath":"exceptions.md","lastUpdated":1665311928000}'),o={name:"exceptions.md"},t=n("",22),l=[t];function i(p,r,c,d,h,u){return e(),s("div",null,l)}const C=a(o,[["render",i]]);export{D as __pageData,C as default};
+import{_ as a,o as e,c as s,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Exceptions","description":"","frontmatter":{},"headers":[],"relativePath":"exceptions.md","filePath":"exceptions.md","lastUpdated":1665311928000}'),o={name:"exceptions.md"},t=n("",22),l=[t];function i(p,r,c,d,h,u){return e(),s("div",null,l)}const C=a(o,[["render",i]]);export{D as __pageData,C as default};
diff --git a/docs/assets/extensions.md.e620f6c9.js b/docs/assets/extensions.md.b080d23b.js
similarity index 92%
rename from docs/assets/extensions.md.e620f6c9.js
rename to docs/assets/extensions.md.b080d23b.js
index 27bbf8d7..48d13292 100644
--- a/docs/assets/extensions.md.e620f6c9.js
+++ b/docs/assets/extensions.md.b080d23b.js
@@ -1 +1 @@
-import{_ as t,o as e,c as a,R as s}from"./chunks/framework.fed62f4c.js";const x=JSON.parse('{"title":"Extensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions.md","filePath":"extensions.md","lastUpdated":1667468707000}'),o={name:"extensions.md"},n=s('

Extensions

This page is about the PeyrSharp.Extensions module.

Compatibility

The PeyrSharp.Extensions module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Classes

',7),i=[n];function r(d,l,h,c,m,_){return e(),a("div",null,i)}const f=t(o,[["render",r]]);export{x as __pageData,f as default}; +import{_ as t,o as e,c as a,U as s}from"./chunks/framework.1eef7d9b.js";const x=JSON.parse('{"title":"Extensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions.md","filePath":"extensions.md","lastUpdated":1667468707000}'),o={name:"extensions.md"},n=s('

Extensions

This page is about the PeyrSharp.Extensions module.

Compatibility

The PeyrSharp.Extensions module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Classes

',7),i=[n];function r(d,l,h,c,m,_){return e(),a("div",null,i)}const f=t(o,[["render",r]]);export{x as __pageData,f as default}; diff --git a/docs/assets/extensions.md.e620f6c9.lean.js b/docs/assets/extensions.md.b080d23b.lean.js similarity index 68% rename from docs/assets/extensions.md.e620f6c9.lean.js rename to docs/assets/extensions.md.b080d23b.lean.js index 5af99965..291318f8 100644 --- a/docs/assets/extensions.md.e620f6c9.lean.js +++ b/docs/assets/extensions.md.b080d23b.lean.js @@ -1 +1 @@ -import{_ as t,o as e,c as a,R as s}from"./chunks/framework.fed62f4c.js";const x=JSON.parse('{"title":"Extensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions.md","filePath":"extensions.md","lastUpdated":1667468707000}'),o={name:"extensions.md"},n=s("",7),i=[n];function r(d,l,h,c,m,_){return e(),a("div",null,i)}const f=t(o,[["render",r]]);export{x as __pageData,f as default}; +import{_ as t,o as e,c as a,U as s}from"./chunks/framework.1eef7d9b.js";const x=JSON.parse('{"title":"Extensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions.md","filePath":"extensions.md","lastUpdated":1667468707000}'),o={name:"extensions.md"},n=s("",7),i=[n];function r(d,l,h,c,m,_){return e(),a("div",null,i)}const f=t(o,[["render",r]]);export{x as __pageData,f as default}; diff --git a/docs/assets/extensions_array.md.b6bd906a.js b/docs/assets/extensions_array.md.fc0364fa.js similarity index 99% rename from docs/assets/extensions_array.md.b6bd906a.js rename to docs/assets/extensions_array.md.fc0364fa.js index 7cdc90bf..dff98805 100644 --- a/docs/assets/extensions_array.md.b6bd906a.js +++ b/docs/assets/extensions_array.md.fc0364fa.js @@ -1,4 +1,4 @@ -import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"ArrayExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/array.md","filePath":"extensions/array.md","lastUpdated":1673177468000}'),t={name:"extensions/array.md"},o=n(`

ArrayExtensions

This page is about the ArrayExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The ArrayExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

Append(item)

Definition

The Append<T>() method adds an item to an existing array of any type. It returns an array of the chosen type (T[]).

Arguments

TypeNameMeaning
TitemThe item to append in the array.

Usage

c#
using PeyrSharp.Extensions;
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"ArrayExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/array.md","filePath":"extensions/array.md","lastUpdated":1673177468000}'),t={name:"extensions/array.md"},o=n(`

ArrayExtensions

This page is about the ArrayExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The ArrayExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

Append(item)

Definition

The Append<T>() method adds an item to an existing array of any type. It returns an array of the chosen type (T[]).

Arguments

TypeNameMeaning
TitemThe item to append in the array.

Usage

c#
using PeyrSharp.Extensions;
 
 int[] numbers = { 1, 2, 3, 4 };
 int[] appendNumbers = numbers.Append(5);
diff --git a/docs/assets/extensions_array.md.b6bd906a.lean.js b/docs/assets/extensions_array.md.fc0364fa.lean.js
similarity index 70%
rename from docs/assets/extensions_array.md.b6bd906a.lean.js
rename to docs/assets/extensions_array.md.fc0364fa.lean.js
index 483ca8bb..2488bf18 100644
--- a/docs/assets/extensions_array.md.b6bd906a.lean.js
+++ b/docs/assets/extensions_array.md.fc0364fa.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as n}from"./chunks/framework.fed62f4c.js";const F=JSON.parse('{"title":"ArrayExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/array.md","filePath":"extensions/array.md","lastUpdated":1673177468000}'),t={name:"extensions/array.md"},o=n("",42),l=[o];function p(r,c,i,d,y,h){return s(),e("div",null,l)}const C=a(t,[["render",p]]);export{F as __pageData,C as default};
+import{_ as a,o as s,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const F=JSON.parse('{"title":"ArrayExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/array.md","filePath":"extensions/array.md","lastUpdated":1673177468000}'),t={name:"extensions/array.md"},o=n("",42),l=[o];function p(r,c,i,d,y,h){return s(),e("div",null,l)}const C=a(t,[["render",p]]);export{F as __pageData,C as default};
diff --git a/docs/assets/extensions_double.md.8b8e8575.js b/docs/assets/extensions_double.md.de01a066.js
similarity index 99%
rename from docs/assets/extensions_double.md.8b8e8575.js
rename to docs/assets/extensions_double.md.de01a066.js
index a1267454..8601ee1f 100644
--- a/docs/assets/extensions_double.md.8b8e8575.js
+++ b/docs/assets/extensions_double.md.de01a066.js
@@ -1,4 +1,4 @@
-import{_ as a,o as s,c as e,R as t}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"DoubleExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/double.md","filePath":"extensions/double.md","lastUpdated":1680429319000}'),n={name:"extensions/double.md"},o=t(`

DoubleExtensions

This page is about the DoubleExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The DoubleExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

Mean(values)

Definition

Calculates the mean (average) of a dataset. Returns the mean of the dataset as double.

Exceptions

TypeCondition
System.ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Extensions;
+import{_ as a,o as s,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"DoubleExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/double.md","filePath":"extensions/double.md","lastUpdated":1680429319000}'),n={name:"extensions/double.md"},o=t(`

DoubleExtensions

This page is about the DoubleExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The DoubleExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

Mean(values)

Definition

Calculates the mean (average) of a dataset. Returns the mean of the dataset as double.

Exceptions

TypeCondition
System.ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Extensions;
 
 double[] data = new double[] { 1.0, 2.0, 3.0, 4.0, 5.0 };
 double mean = data.Mean(); // 5

Median(values)

Definition

Calculates the median of a dataset. Returns the median of the dataset as double.

Exceptions

TypeCondition
ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Extensions;
diff --git a/docs/assets/extensions_double.md.8b8e8575.lean.js b/docs/assets/extensions_double.md.de01a066.lean.js
similarity index 70%
rename from docs/assets/extensions_double.md.8b8e8575.lean.js
rename to docs/assets/extensions_double.md.de01a066.lean.js
index a1339a55..79fd92c7 100644
--- a/docs/assets/extensions_double.md.8b8e8575.lean.js
+++ b/docs/assets/extensions_double.md.de01a066.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,R as t}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"DoubleExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/double.md","filePath":"extensions/double.md","lastUpdated":1680429319000}'),n={name:"extensions/double.md"},o=t("",115),l=[o];function r(p,i,c,d,h,y){return s(),e("div",null,l)}const D=a(n,[["render",r]]);export{C as __pageData,D as default};
+import{_ as a,o as s,c as e,U as t}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"DoubleExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/double.md","filePath":"extensions/double.md","lastUpdated":1680429319000}'),n={name:"extensions/double.md"},o=t("",115),l=[o];function r(p,i,c,d,h,y){return s(),e("div",null,l)}const D=a(n,[["render",r]]);export{C as __pageData,D as default};
diff --git a/docs/assets/extensions_int.md.06c94f62.js b/docs/assets/extensions_int.md.8d3dd603.js
similarity index 99%
rename from docs/assets/extensions_int.md.06c94f62.js
rename to docs/assets/extensions_int.md.8d3dd603.js
index 55a30af9..a746c31c 100644
--- a/docs/assets/extensions_int.md.06c94f62.js
+++ b/docs/assets/extensions_int.md.8d3dd603.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,R as e}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"IntExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/int.md","filePath":"extensions/int.md","lastUpdated":1680429319000}'),o={name:"extensions/int.md"},t=e(`

IntExtensions

This page is about the IntExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The IntExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

GetDivisors()

Definition

Gets all divisors of a specific number. Returns an array of int[].

Arguments

This method does not have any arguments.

Usage

c#
using PeyrSharp.Extensions;
+import{_ as s,o as a,c as n,U as e}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"IntExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/int.md","filePath":"extensions/int.md","lastUpdated":1680429319000}'),o={name:"extensions/int.md"},t=e(`

IntExtensions

This page is about the IntExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The IntExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

GetDivisors()

Definition

Gets all divisors of a specific number. Returns an array of int[].

Arguments

This method does not have any arguments.

Usage

c#
using PeyrSharp.Extensions;
 
 int[] divs = 16.GetDivisors(); // { 1, 2, 4, 8, 16 }

IsEven()

Definition

Checks if the number is even. Returns a bool.

Arguments

This method does not have any arguments.

Usage

c#
using PeyrSharp.Extensions;
 
diff --git a/docs/assets/extensions_int.md.06c94f62.lean.js b/docs/assets/extensions_int.md.8d3dd603.lean.js
similarity index 69%
rename from docs/assets/extensions_int.md.06c94f62.lean.js
rename to docs/assets/extensions_int.md.8d3dd603.lean.js
index 4b09e7a3..08fe30a0 100644
--- a/docs/assets/extensions_int.md.06c94f62.lean.js
+++ b/docs/assets/extensions_int.md.8d3dd603.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,R as e}from"./chunks/framework.fed62f4c.js";const C=JSON.parse('{"title":"IntExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/int.md","filePath":"extensions/int.md","lastUpdated":1680429319000}'),o={name:"extensions/int.md"},t=e("",49),l=[t];function p(r,i,c,d,h,y){return a(),n("div",null,l)}const F=s(o,[["render",p]]);export{C as __pageData,F as default};
+import{_ as s,o as a,c as n,U as e}from"./chunks/framework.1eef7d9b.js";const C=JSON.parse('{"title":"IntExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/int.md","filePath":"extensions/int.md","lastUpdated":1680429319000}'),o={name:"extensions/int.md"},t=e("",49),l=[t];function p(r,i,c,d,h,y){return a(),n("div",null,l)}const F=s(o,[["render",p]]);export{C as __pageData,F as default};
diff --git a/docs/assets/extensions_string.md.2b9e7045.js b/docs/assets/extensions_string.md.57d0b3ae.js
similarity index 99%
rename from docs/assets/extensions_string.md.2b9e7045.js
rename to docs/assets/extensions_string.md.57d0b3ae.js
index 49c52118..ba876324 100644
--- a/docs/assets/extensions_string.md.2b9e7045.js
+++ b/docs/assets/extensions_string.md.57d0b3ae.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"StringExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/string.md","filePath":"extensions/string.md","lastUpdated":1678016378000}'),t={name:"extensions/string.md"},o=n(`

StringExtensions

This page is about the StringExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The StringExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

CountWords()

Definition

Counts the number of words in a string. Returns int.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Extensions;
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"StringExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/string.md","filePath":"extensions/string.md","lastUpdated":1678016235000}'),t={name:"extensions/string.md"},o=n(`

StringExtensions

This page is about the StringExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The StringExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

CountWords()

Definition

Counts the number of words in a string. Returns int.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Extensions;
 
 int numberOfWords = "Hello, this is a test sentence!".CountWords();
 // numberOfWords = 6

CountWords(wordSeparator)

Definition

Counts the number of words in a string, with specified word separators. By default, the method uses those (if you don't pass any argument to it): , ,, ;, ., :, !, ?. Returns int.

Arguments

TypeNameMeaning
string[]wordSeparatorThe separator of the words.

Usage

c#
using PeyrSharp.Extensions;
diff --git a/docs/assets/extensions_string.md.2b9e7045.lean.js b/docs/assets/extensions_string.md.57d0b3ae.lean.js
similarity index 55%
rename from docs/assets/extensions_string.md.2b9e7045.lean.js
rename to docs/assets/extensions_string.md.57d0b3ae.lean.js
index 0158bbc1..437c4754 100644
--- a/docs/assets/extensions_string.md.2b9e7045.lean.js
+++ b/docs/assets/extensions_string.md.57d0b3ae.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as e,R as n}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"StringExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/string.md","filePath":"extensions/string.md","lastUpdated":1678016378000}'),t={name:"extensions/string.md"},o=n("",88),l=[o];function r(p,c,i,d,h,y){return a(),e("div",null,l)}const F=s(t,[["render",r]]);export{D as __pageData,F as default};
+import{_ as s,o as a,c as e,U as n}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"StringExtensions","description":"","frontmatter":{},"headers":[],"relativePath":"extensions/string.md","filePath":"extensions/string.md","lastUpdated":1678016235000}'),t={name:"extensions/string.md"},o=n("",88),l=[o];function r(p,c,i,d,h,y){return a(),e("div",null,l)}const F=s(t,[["render",r]]);export{D as __pageData,F as default};
diff --git a/docs/assets/get-started.md.471947b8.js b/docs/assets/get-started.md.a01a8ac8.js
similarity index 98%
rename from docs/assets/get-started.md.471947b8.js
rename to docs/assets/get-started.md.a01a8ac8.js
index cf830ea1..1b1ff09b 100644
--- a/docs/assets/get-started.md.471947b8.js
+++ b/docs/assets/get-started.md.a01a8ac8.js
@@ -1,4 +1,4 @@
-import{_ as a,o as e,c as s,R as t}from"./chunks/framework.fed62f4c.js";const m=JSON.parse('{"title":"Get Started","description":"","frontmatter":{},"headers":[],"relativePath":"get-started.md","filePath":"get-started.md","lastUpdated":1683355029000}'),l={name:"get-started.md"},o=t(`

Get Started

Packages and modules

Before installing PeyrSharp, you may want to consider what features you will actually need to use in your project. Indeed, PeyrSharp is divided in multiple modules and packages.

If you think you need all the features of PeyrSharp, you can directly install the PeyrSharp NuGet package. However, you can also install the packages that you only need in your project. Here's a list of all the packages and their features:

PeyrSharp, the main package, that contains all of the followings:

PeyrSharp.Core, the basic methods and features of C#
  • Maths
  • Password
  • Guid
  • Converters
  • Internet
  • Crypt
PeyrSharp.Env, methods related to the file system and to the current execution environment.
  • FileSys
  • Logger
  • Update
  • System
PeyrSharp.Enums, all enumerations used by PeyrSharp
  • LogLevel
  • WindowsVersion
  • TimeUnits
  • SystemThemes
  • OperatingSystems
  • StorageUnits
  • ControlAlignment
  • PasswordPresets
  • PasswordStrength
PeyrSharp.Exceptions, all exceptions used by PeyrSharp
  • RGBInvalidValueException
  • HEXInvalidValueException
  • InvalidGuidLengthException
PeyrSharp.Extensions, extension methods, that extends basic types, such as string, int, double or arrays (T[]).
  • String
  • Int
  • Double
  • Array (T[])
PeyrSharp.UiHelpers, methods related to Windows Forms or to the Windows Presentation Framework (WPF).
  • WinForms
  • Screen
  • WPF

Compatibility

Platforms

Some modules of PeyrSharp are targeting features only available in specific operating systems. Thus, some packages aren't available on all platforms.

Package/PlatformWindowsmacOSLinux + others
Core
Env⚠️⚠️
Enums
Exceptions
Extensions
UiHelpers

Caption:

  • ✅ Full Support
  • ⚠️ Partial Support
  • ❌ Unsupported platform

Frameworks

PeyrSharp is available in the following frameworks

  • .NET 5
  • .NET 6
  • .NET 7

INFO

.NET Framework and .NET Core are not targeted by PeyrSharp, since they are no longer supported.

Installation methods

PeyrShall is available on NuGet, you can install it by running the following command:

.NET CLI

You can add PeyrSharp to your project the .NET CLI.

powershell
dotnet add package PeyrSharp --version 1.0.0.2211

Package Manager

sh
NuGet\\Install-Package PeyrSharp -Version 1.0.0.2211

Package Reference

You can specify in your project file that it is dependent on PeyrSharp.

xml
<PackageReference Include="PeyrSharp" Version="1.0.0.2211" />

Start coding

To call methods and classes included in PeyrSharp, you will need to add the corresponding using directives in your code file.

c#
using PeyrSharp.Core;
+import{_ as a,o as e,c as s,U as t}from"./chunks/framework.1eef7d9b.js";const m=JSON.parse('{"title":"Get Started","description":"","frontmatter":{},"headers":[],"relativePath":"get-started.md","filePath":"get-started.md","lastUpdated":1683355029000}'),l={name:"get-started.md"},o=t(`

Get Started

Packages and modules

Before installing PeyrSharp, you may want to consider what features you will actually need to use in your project. Indeed, PeyrSharp is divided in multiple modules and packages.

If you think you need all the features of PeyrSharp, you can directly install the PeyrSharp NuGet package. However, you can also install the packages that you only need in your project. Here's a list of all the packages and their features:

PeyrSharp, the main package, that contains all of the followings:

PeyrSharp.Core, the basic methods and features of C#
  • Maths
  • Password
  • Guid
  • Converters
  • Internet
  • Crypt
PeyrSharp.Env, methods related to the file system and to the current execution environment.
  • FileSys
  • Logger
  • Update
  • System
PeyrSharp.Enums, all enumerations used by PeyrSharp
  • LogLevel
  • WindowsVersion
  • TimeUnits
  • SystemThemes
  • OperatingSystems
  • StorageUnits
  • ControlAlignment
  • PasswordPresets
  • PasswordStrength
PeyrSharp.Exceptions, all exceptions used by PeyrSharp
  • RGBInvalidValueException
  • HEXInvalidValueException
  • InvalidGuidLengthException
PeyrSharp.Extensions, extension methods, that extends basic types, such as string, int, double or arrays (T[]).
  • String
  • Int
  • Double
  • Array (T[])
PeyrSharp.UiHelpers, methods related to Windows Forms or to the Windows Presentation Framework (WPF).
  • WinForms
  • Screen
  • WPF

Compatibility

Platforms

Some modules of PeyrSharp are targeting features only available in specific operating systems. Thus, some packages aren't available on all platforms.

Package/PlatformWindowsmacOSLinux + others
Core
Env⚠️⚠️
Enums
Exceptions
Extensions
UiHelpers

Caption:

  • ✅ Full Support
  • ⚠️ Partial Support
  • ❌ Unsupported platform

Frameworks

PeyrSharp is available in the following frameworks

  • .NET 5
  • .NET 6
  • .NET 7

INFO

.NET Framework and .NET Core are not targeted by PeyrSharp, since they are no longer supported.

Installation methods

PeyrShall is available on NuGet, you can install it by running the following command:

.NET CLI

You can add PeyrSharp to your project the .NET CLI.

powershell
dotnet add package PeyrSharp --version 1.0.0.2211

Package Manager

sh
NuGet\\Install-Package PeyrSharp -Version 1.0.0.2211

Package Reference

You can specify in your project file that it is dependent on PeyrSharp.

xml
<PackageReference Include="PeyrSharp" Version="1.0.0.2211" />

Start coding

To call methods and classes included in PeyrSharp, you will need to add the corresponding using directives in your code file.

c#
using PeyrSharp.Core;
 using PeyrSharp.Env;
 using PeyrSharp.Enums;
 using PeyrSharp.Exceptions;
diff --git a/docs/assets/get-started.md.471947b8.lean.js b/docs/assets/get-started.md.a01a8ac8.lean.js
similarity index 69%
rename from docs/assets/get-started.md.471947b8.lean.js
rename to docs/assets/get-started.md.a01a8ac8.lean.js
index 6a7984d7..9a55bb31 100644
--- a/docs/assets/get-started.md.471947b8.lean.js
+++ b/docs/assets/get-started.md.a01a8ac8.lean.js
@@ -1 +1 @@
-import{_ as a,o as e,c as s,R as t}from"./chunks/framework.fed62f4c.js";const m=JSON.parse('{"title":"Get Started","description":"","frontmatter":{},"headers":[],"relativePath":"get-started.md","filePath":"get-started.md","lastUpdated":1683355029000}'),l={name:"get-started.md"},o=t("",35),n=[o];function r(i,p,c,d,h,u){return e(),s("div",null,n)}const g=a(l,[["render",r]]);export{m as __pageData,g as default};
+import{_ as a,o as e,c as s,U as t}from"./chunks/framework.1eef7d9b.js";const m=JSON.parse('{"title":"Get Started","description":"","frontmatter":{},"headers":[],"relativePath":"get-started.md","filePath":"get-started.md","lastUpdated":1683355029000}'),l={name:"get-started.md"},o=t("",35),n=[o];function r(i,p,c,d,h,u){return e(),s("div",null,n)}const g=a(l,[["render",r]]);export{m as __pageData,g as default};
diff --git a/docs/assets/index.md.2e30fbda.js b/docs/assets/index.md.6827c3c3.js
similarity index 94%
rename from docs/assets/index.md.2e30fbda.js
rename to docs/assets/index.md.6827c3c3.js
index 63fd0f2f..a469d2b0 100644
--- a/docs/assets/index.md.2e30fbda.js
+++ b/docs/assets/index.md.6827c3c3.js
@@ -1 +1 @@
-import{_ as e,o as t,c as a}from"./chunks/framework.fed62f4c.js";const m=JSON.parse(`{"title":"PeyrSharp","titleTemplate":"A C# library designed to make developers' job easier.","description":"","frontmatter":{"layout":"home","title":"PeyrSharp","titleTemplate":"A C# library designed to make developers' job easier.","hero":{"name":"PeyrSharp","text":"Made for you.","tagline":"A C# library designed to make developers' job easier.","image":{"src":"/logo.png","alt":"PeyrSharp"},"actions":[{"theme":"brand","text":"Get Started","link":"/get-started"},{"theme":"alt","text":"Reference","link":"/reference"}]},"features":[{"title":"Easy-to-use","details":"Using PeyrSharp in a project is very easy and intuitive.","icon":"✅"},{"title":".NET Powered","details":"PeyrSharp is built using C# and .NET. It's available for projects targeting .NET 5 and higher.","icon":"🚀"},{"title":"Cross-Platform","details":"PeyrSharp is compatible with every operating systems that .NET supports.","icon":"🖥️"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1665305917000}`),r={name:"index.md"};function i(s,o,n,l,d,p){return t(),a("div")}const h=e(r,[["render",i]]);export{m as __pageData,h as default};
+import{_ as e,o as t,c as a}from"./chunks/framework.1eef7d9b.js";const m=JSON.parse(`{"title":"PeyrSharp","titleTemplate":"A C# library designed to make developers' job easier.","description":"","frontmatter":{"layout":"home","title":"PeyrSharp","titleTemplate":"A C# library designed to make developers' job easier.","hero":{"name":"PeyrSharp","text":"Made for you.","tagline":"A C# library designed to make developers' job easier.","image":{"src":"/logo.png","alt":"PeyrSharp"},"actions":[{"theme":"brand","text":"Get Started","link":"/get-started"},{"theme":"alt","text":"Reference","link":"/reference"}]},"features":[{"title":"Easy-to-use","details":"Using PeyrSharp in a project is very easy and intuitive.","icon":"✅"},{"title":".NET Powered","details":"PeyrSharp is built using C# and .NET. It's available for projects targeting .NET 5 and higher.","icon":"🚀"},{"title":"Cross-Platform","details":"PeyrSharp is compatible with every operating systems that .NET supports.","icon":"🖥️"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1665305917000}`),r={name:"index.md"};function i(s,o,n,l,d,p){return t(),a("div")}const h=e(r,[["render",i]]);export{m as __pageData,h as default};
diff --git a/docs/assets/index.md.2e30fbda.lean.js b/docs/assets/index.md.6827c3c3.lean.js
similarity index 94%
rename from docs/assets/index.md.2e30fbda.lean.js
rename to docs/assets/index.md.6827c3c3.lean.js
index 63fd0f2f..a469d2b0 100644
--- a/docs/assets/index.md.2e30fbda.lean.js
+++ b/docs/assets/index.md.6827c3c3.lean.js
@@ -1 +1 @@
-import{_ as e,o as t,c as a}from"./chunks/framework.fed62f4c.js";const m=JSON.parse(`{"title":"PeyrSharp","titleTemplate":"A C# library designed to make developers' job easier.","description":"","frontmatter":{"layout":"home","title":"PeyrSharp","titleTemplate":"A C# library designed to make developers' job easier.","hero":{"name":"PeyrSharp","text":"Made for you.","tagline":"A C# library designed to make developers' job easier.","image":{"src":"/logo.png","alt":"PeyrSharp"},"actions":[{"theme":"brand","text":"Get Started","link":"/get-started"},{"theme":"alt","text":"Reference","link":"/reference"}]},"features":[{"title":"Easy-to-use","details":"Using PeyrSharp in a project is very easy and intuitive.","icon":"✅"},{"title":".NET Powered","details":"PeyrSharp is built using C# and .NET. It's available for projects targeting .NET 5 and higher.","icon":"🚀"},{"title":"Cross-Platform","details":"PeyrSharp is compatible with every operating systems that .NET supports.","icon":"🖥️"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1665305917000}`),r={name:"index.md"};function i(s,o,n,l,d,p){return t(),a("div")}const h=e(r,[["render",i]]);export{m as __pageData,h as default};
+import{_ as e,o as t,c as a}from"./chunks/framework.1eef7d9b.js";const m=JSON.parse(`{"title":"PeyrSharp","titleTemplate":"A C# library designed to make developers' job easier.","description":"","frontmatter":{"layout":"home","title":"PeyrSharp","titleTemplate":"A C# library designed to make developers' job easier.","hero":{"name":"PeyrSharp","text":"Made for you.","tagline":"A C# library designed to make developers' job easier.","image":{"src":"/logo.png","alt":"PeyrSharp"},"actions":[{"theme":"brand","text":"Get Started","link":"/get-started"},{"theme":"alt","text":"Reference","link":"/reference"}]},"features":[{"title":"Easy-to-use","details":"Using PeyrSharp in a project is very easy and intuitive.","icon":"✅"},{"title":".NET Powered","details":"PeyrSharp is built using C# and .NET. It's available for projects targeting .NET 5 and higher.","icon":"🚀"},{"title":"Cross-Platform","details":"PeyrSharp is compatible with every operating systems that .NET supports.","icon":"🖥️"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1665305917000}`),r={name:"index.md"};function i(s,o,n,l,d,p){return t(),a("div")}const h=e(r,[["render",i]]);export{m as __pageData,h as default};
diff --git a/docs/assets/intro.md.1957dd01.js b/docs/assets/intro.md.8e286665.js
similarity index 97%
rename from docs/assets/intro.md.1957dd01.js
rename to docs/assets/intro.md.8e286665.js
index 22377e65..acf4e1f6 100644
--- a/docs/assets/intro.md.1957dd01.js
+++ b/docs/assets/intro.md.8e286665.js
@@ -1 +1 @@
-import{_ as t,o as e,c as a,R as r}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"intro.md","filePath":"intro.md","lastUpdated":1683355029000}'),i={name:"intro.md"},o=r('

Introduction

The roots

In March 2020, we published LeoCorpLibrary, which was also a C# library that contains useful methods. When we started the development of it, we didn't know where the project will go yet. Over the releases, we've added more and more methods and new features. However, the meaning and the purpose of LeoCorpLibrary was becoming less clear for everyone; it was becoming a mess. This is why we decided to rather not release v5, but instead, we decided to make a brand new .NET Library, PeyrSharp.

Our next product

PeyrSharp is a C# written library designed to make developers' life easier. We've all written code that we wish we hadn't. PeyrSharp is here to respond to this need; by implementing useful methods in various domains: Mathematics, Web/HTTP requests, unit converters, extensions, environment-related operations, and more!

Modules

PeyrSharp is divided in multiple packages:

PeyrSharp, the main package, that contains all of the followings:

PeyrSharp.Core, the basic methods and features of C#
  • Maths
  • Password
  • Guid
  • Converters
  • Internet
  • Crypt
PeyrSharp.Env, methods related to the file system and to the current execution environment.
  • FileSys
  • Logger
  • Update
  • System
PeyrSharp.Enums, all enumerations used by PeyrSharp
  • WindowsVersion
  • TimeUnits
  • SystemThemes
  • OperatingSystems
  • StorageUnits
  • ControlAlignment
  • PasswordPresets
  • PasswordStrength
PeyrSharp.Exceptions, all exceptions used by PeyrSharp
  • RGBInvalidValueException
  • HEXInvalidValueException
  • InvalidGuidLengthException
PeyrSharp.Extensions, extension methods, that extends basic types, such as string, int, double or arrays (T[]).
  • String
  • Int
  • Double
  • Array (T[])
PeyrSharp.UiHelpers, methods related to Windows Forms or to the Windows Presentation Framework (WPF).
  • WinForms
  • Screen
  • WPF

Compatibility

Platforms

Some modules of PeyrSharp are targeting features only available in specific operating systems. Thus, some packages aren't available on all platform.

Package/PlatformWindowsmacOSLinux + others
Core
Env⚠️⚠️
Enums
Exceptions
Extensions
UiHelpers

Caption:

  • ✅ Full Support
  • ⚠️ Partial Support
  • ❌ Unsupported platform

Frameworks

PeyrSharp is available in the following frameworks

  • .NET 5
  • .NET 6
  • .NET 7

NOTE

.NET Framework and .NET Core are not targeted by PeyrSharp, since they are no longer supported.

',24),s=[o];function l(d,n,h,c,m,u){return e(),a("div",null,s)}const b=t(i,[["render",l]]);export{y as __pageData,b as default}; +import{_ as t,o as e,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"intro.md","filePath":"intro.md","lastUpdated":1683355029000}'),i={name:"intro.md"},o=r('

Introduction

The roots

In March 2020, we published LeoCorpLibrary, which was also a C# library that contains useful methods. When we started the development of it, we didn't know where the project will go yet. Over the releases, we've added more and more methods and new features. However, the meaning and the purpose of LeoCorpLibrary was becoming less clear for everyone; it was becoming a mess. This is why we decided to rather not release v5, but instead, we decided to make a brand new .NET Library, PeyrSharp.

Our next product

PeyrSharp is a C# written library designed to make developers' life easier. We've all written code that we wish we hadn't. PeyrSharp is here to respond to this need; by implementing useful methods in various domains: Mathematics, Web/HTTP requests, unit converters, extensions, environment-related operations, and more!

Modules

PeyrSharp is divided in multiple packages:

PeyrSharp, the main package, that contains all of the followings:

PeyrSharp.Core, the basic methods and features of C#
  • Maths
  • Password
  • Guid
  • Converters
  • Internet
  • Crypt
PeyrSharp.Env, methods related to the file system and to the current execution environment.
  • FileSys
  • Logger
  • Update
  • System
PeyrSharp.Enums, all enumerations used by PeyrSharp
  • WindowsVersion
  • TimeUnits
  • SystemThemes
  • OperatingSystems
  • StorageUnits
  • ControlAlignment
  • PasswordPresets
  • PasswordStrength
PeyrSharp.Exceptions, all exceptions used by PeyrSharp
  • RGBInvalidValueException
  • HEXInvalidValueException
  • InvalidGuidLengthException
PeyrSharp.Extensions, extension methods, that extends basic types, such as string, int, double or arrays (T[]).
  • String
  • Int
  • Double
  • Array (T[])
PeyrSharp.UiHelpers, methods related to Windows Forms or to the Windows Presentation Framework (WPF).
  • WinForms
  • Screen
  • WPF

Compatibility

Platforms

Some modules of PeyrSharp are targeting features only available in specific operating systems. Thus, some packages aren't available on all platform.

Package/PlatformWindowsmacOSLinux + others
Core
Env⚠️⚠️
Enums
Exceptions
Extensions
UiHelpers

Caption:

  • ✅ Full Support
  • ⚠️ Partial Support
  • ❌ Unsupported platform

Frameworks

PeyrSharp is available in the following frameworks

  • .NET 5
  • .NET 6
  • .NET 7

NOTE

.NET Framework and .NET Core are not targeted by PeyrSharp, since they are no longer supported.

',24),s=[o];function l(d,n,h,c,m,u){return e(),a("div",null,s)}const b=t(i,[["render",l]]);export{y as __pageData,b as default}; diff --git a/docs/assets/intro.md.1957dd01.lean.js b/docs/assets/intro.md.8e286665.lean.js similarity index 67% rename from docs/assets/intro.md.1957dd01.lean.js rename to docs/assets/intro.md.8e286665.lean.js index 8784ff79..7b412942 100644 --- a/docs/assets/intro.md.1957dd01.lean.js +++ b/docs/assets/intro.md.8e286665.lean.js @@ -1 +1 @@ -import{_ as t,o as e,c as a,R as r}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"intro.md","filePath":"intro.md","lastUpdated":1683355029000}'),i={name:"intro.md"},o=r("",24),s=[o];function l(d,n,h,c,m,u){return e(),a("div",null,s)}const b=t(i,[["render",l]]);export{y as __pageData,b as default}; +import{_ as t,o as e,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"intro.md","filePath":"intro.md","lastUpdated":1683355029000}'),i={name:"intro.md"},o=r("",24),s=[o];function l(d,n,h,c,m,u){return e(),a("div",null,s)}const b=t(i,[["render",l]]);export{y as __pageData,b as default}; diff --git a/docs/assets/reference.md.8929dea9.js b/docs/assets/reference.md.8929dea9.js deleted file mode 100644 index ec36bfa1..00000000 --- a/docs/assets/reference.md.8929dea9.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as r,c as a,R as l}from"./chunks/framework.fed62f4c.js";const d=JSON.parse('{"title":"Reference","description":"","frontmatter":{},"headers":[],"relativePath":"reference.md","filePath":"reference.md","lastUpdated":1688123591000}'),t={name:"reference.md"},i=l('

Reference

The reference of PeyrSharp.

PeyrSharp.Core

PeyrSharp.Env

PeyrSharp.Enums

PeyrSharp.Exceptions

PeyrSharp.Extensions

PeyrSharp.UiHelpers

',14),h=[i];function o(s,n,m,c,p,f){return r(),a("div",null,h)}const y=e(t,[["render",o]]);export{d as __pageData,y as default}; diff --git a/docs/assets/reference.md.a31a0df4.js b/docs/assets/reference.md.a31a0df4.js new file mode 100644 index 00000000..c434bef0 --- /dev/null +++ b/docs/assets/reference.md.a31a0df4.js @@ -0,0 +1 @@ +import{_ as e,o as r,c as a,U as l}from"./chunks/framework.1eef7d9b.js";const d=JSON.parse('{"title":"Reference","description":"","frontmatter":{},"headers":[],"relativePath":"reference.md","filePath":"reference.md","lastUpdated":1690620922000}'),t={name:"reference.md"},i=l('

Reference

The reference of PeyrSharp.

PeyrSharp.Core

PeyrSharp.Env

PeyrSharp.Enums

PeyrSharp.Exceptions

PeyrSharp.Extensions

PeyrSharp.UiHelpers

',14),h=[i];function o(s,n,m,c,p,f){return r(),a("div",null,h)}const y=e(t,[["render",o]]);export{d as __pageData,y as default}; diff --git a/docs/assets/reference.md.8929dea9.lean.js b/docs/assets/reference.md.a31a0df4.lean.js similarity index 52% rename from docs/assets/reference.md.8929dea9.lean.js rename to docs/assets/reference.md.a31a0df4.lean.js index fa149250..ab594c90 100644 --- a/docs/assets/reference.md.8929dea9.lean.js +++ b/docs/assets/reference.md.a31a0df4.lean.js @@ -1 +1 @@ -import{_ as e,o as r,c as a,R as l}from"./chunks/framework.fed62f4c.js";const d=JSON.parse('{"title":"Reference","description":"","frontmatter":{},"headers":[],"relativePath":"reference.md","filePath":"reference.md","lastUpdated":1688123591000}'),t={name:"reference.md"},i=l("",14),h=[i];function o(s,n,m,c,p,f){return r(),a("div",null,h)}const y=e(t,[["render",o]]);export{d as __pageData,y as default}; +import{_ as e,o as r,c as a,U as l}from"./chunks/framework.1eef7d9b.js";const d=JSON.parse('{"title":"Reference","description":"","frontmatter":{},"headers":[],"relativePath":"reference.md","filePath":"reference.md","lastUpdated":1690620922000}'),t={name:"reference.md"},i=l("",14),h=[i];function o(s,n,m,c,p,f){return r(),a("div",null,h)}const y=e(t,[["render",o]]);export{d as __pageData,y as default}; diff --git a/docs/assets/style.06b3f6a5.css b/docs/assets/style.06b3f6a5.css deleted file mode 100644 index 8a55be94..00000000 --- a/docs/assets/style.06b3f6a5.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-gray: #8e8e93;--vp-c-text-light-1: rgba(60, 60, 67);--vp-c-text-light-2: rgba(60, 60, 67, .75);--vp-c-text-light-3: rgba(60, 60, 67, .33);--vp-c-text-dark-1: rgba(255, 255, 245, .86);--vp-c-text-dark-2: rgba(235, 235, 245, .6);--vp-c-text-dark-3: rgba(235, 235, 245, .38);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #d97706;--vp-c-yellow-light: #f59e0b;--vp-c-yellow-lighter: #fbbf24;--vp-c-yellow-dark: #b45309;--vp-c-yellow-darker: #92400e;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5);--vp-c-sponsor: #db2777}:root{--vp-c-bg: #ffffff;--vp-c-bg-elv: #ffffff;--vp-c-bg-elv-up: #ffffff;--vp-c-bg-elv-down: #f6f6f7;--vp-c-bg-elv-mute: #f6f6f7;--vp-c-bg-soft: #f6f6f7;--vp-c-bg-soft-up: #f9f9fa;--vp-c-bg-soft-down: #e3e3e5;--vp-c-bg-soft-mute: #e3e3e5;--vp-c-bg-alt: #f6f6f7;--vp-c-border: rgba(60, 60, 67, .29);--vp-c-divider: rgba(60, 60, 67, .12);--vp-c-gutter: rgba(60, 60, 67, .12);--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-code: #476582;--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-mute: #f6f6f7;--vp-c-mute-light: #f9f9fc;--vp-c-mute-lighter: #ffffff;--vp-c-mute-dark: #e3e3e5;--vp-c-mute-darker: #d7d7d9}.dark{--vp-c-bg: #1e1e20;--vp-c-bg-elv: #252529;--vp-c-bg-elv-up: #313136;--vp-c-bg-elv-down: #1e1e20;--vp-c-bg-elv-mute: #313136;--vp-c-bg-soft: #252529;--vp-c-bg-soft-up: #313136;--vp-c-bg-soft-down: #1e1e20;--vp-c-bg-soft-mute: #313136;--vp-c-bg-alt: #161618;--vp-c-border: rgba(82, 82, 89, .68);--vp-c-divider: rgba(82, 82, 89, .32);--vp-c-gutter: #000000;--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-code: #c9def1;--vp-c-mute: #313136;--vp-c-mute-light: #3a3a3c;--vp-c-mute-lighter: #505053;--vp-c-mute-dark: #2c2c30;--vp-c-mute-darker: #252529}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-layout-top: 30;--vp-z-index-backdrop: 40;--vp-z-index-sidebar: 50;--vp-z-index-footer: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-c-code-dimm: var(--vp-c-text-dark-3);--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292b30;--vp-code-block-bg-light: #1e1e20;--vp-code-block-divider-color: #000000;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-line-diff-add-color: var(--vp-c-green-dimm-2);--vp-code-line-diff-add-symbol-color: var(--vp-c-green);--vp-code-line-diff-remove-color: var(--vp-c-red-dimm-2);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red);--vp-code-line-warning-color: var(--vp-c-yellow-dimm-2);--vp-code-line-error-color: var(--vp-c-red-dimm-2);--vp-code-copy-code-border-color: transparent;--vp-code-copy-code-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2);--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-dark-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-bar-color: var(--vp-c-brand)}.dark{--vp-code-block-bg: #161618}:root:not(.dark) .vp-adaptive-theme{--vp-c-code-dimm: var(--vp-c-text-2);--vp-code-block-color: var(--vp-c-text-1);--vp-code-block-bg: #f8f8f8;--vp-code-block-divider-color: var(--vp-c-divider);--vp-code-line-highlight-color: #ececec;--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-copy-code-bg: #e2e2e2;--vp-code-copy-code-hover-bg: #dcdcdc;--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-tab-divider: var(--vp-c-divider);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1)}:root{--vp-button-brand-border: var(--vp-c-brand-lighter);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-dark);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-darker);--vp-button-alt-border: var(--vp-c-border);--vp-button-alt-text: var(--vp-c-neutral);--vp-button-alt-bg: var(--vp-c-mute);--vp-button-alt-hover-border: var(--vp-c-border);--vp-button-alt-hover-text: var(--vp-c-neutral);--vp-button-alt-hover-bg: var(--vp-c-mute-dark);--vp-button-alt-active-border: var(--vp-c-border);--vp-button-alt-active-text: var(--vp-c-neutral);--vp-button-alt-active-bg: var(--vp-c-mute-darker);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-border);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-bg-soft-up);--vp-custom-block-info-code-bg: var(--vp-c-bg-soft);--vp-custom-block-tip-border: var(--vp-c-green);--vp-custom-block-tip-text: var(--vp-c-green-dark);--vp-custom-block-tip-bg: var(--vp-c-bg-soft-up);--vp-custom-block-tip-code-bg: var(--vp-c-bg-soft);--vp-custom-block-warning-border: var(--vp-c-yellow);--vp-custom-block-warning-text: var(--vp-c-yellow);--vp-custom-block-warning-bg: var(--vp-c-bg-soft-up);--vp-custom-block-warning-code-bg: var(--vp-c-bg-soft);--vp-custom-block-danger-border: var(--vp-c-red);--vp-custom-block-danger-text: var(--vp-c-red);--vp-custom-block-danger-bg: var(--vp-c-bg-soft-up);--vp-custom-block-danger-code-bg: var(--vp-c-bg-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-hover-border-color: var(--vp-c-gray);--vp-input-switch-bg-color: var(--vp-c-mute)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg)}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: var(--vp-c-border);--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-bg-soft-up);--vp-badge-tip-border: var(--vp-c-green-dark);--vp-badge-tip-text: var(--vp-c-green);--vp-badge-tip-bg: var(--vp-c-green-dimm-1);--vp-badge-warning-border: var(--vp-c-yellow-dark);--vp-badge-warning-text: var(--vp-c-yellow);--vp-badge-warning-bg: var(--vp-c-yellow-dimm-1);--vp-badge-danger-border: var(--vp-c-red-dark);--vp-badge-danger-text: var(--vp-c-red);--vp-badge-danger-bg: var(--vp-c-red-dimm-1)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand);--vp-local-search-highlight-bg: var(--vp-c-green-lighter);--vp-local-search-highlight-text: var(--vp-c-black)}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600}.custom-block a:hover{text-decoration:underline}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden}.vp-code-group .tabs:after{position:absolute;right:0;bottom:0;left:0;height:1px;background-color:var(--vp-code-tab-divider);content:""}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:absolute;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:1px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-]{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active{display:block}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;user-select:none;opacity:0;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{text-decoration:underline}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600}.vp-doc .custom-block a:hover{text-decoration:underline}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;left:-65px;display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-code-dimm);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-soft-down)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-ce917cfb]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:10px;padding:0 8px;line-height:18px;font-size:12px;font-weight:600;transform:translateY(-2px)}h1 .VPBadge[data-v-ce917cfb],h2 .VPBadge[data-v-ce917cfb],h3 .VPBadge[data-v-ce917cfb],h4 .VPBadge[data-v-ce917cfb],h5 .VPBadge[data-v-ce917cfb],h6 .VPBadge[data-v-ce917cfb]{vertical-align:top}h2 .VPBadge[data-v-ce917cfb]{border-radius:11px;line-height:20px}.VPBadge.info[data-v-ce917cfb]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-ce917cfb]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-ce917cfb]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-ce917cfb]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPSkipLink[data-v-5fd198a2]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-5fd198a2]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-5fd198a2]{top:14px;left:16px}}.VPBackdrop[data-v-54a304ca]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-54a304ca],.VPBackdrop.fade-leave-to[data-v-54a304ca]{opacity:0}.VPBackdrop.fade-leave-active[data-v-54a304ca]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-54a304ca]{display:none}}html:not(.dark) .VPImage.dark[data-v-dc109a54]{display:none}.dark .VPImage.light[data-v-dc109a54]{display:none}.title[data-v-c9cfcc93]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-c9cfcc93]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-c9cfcc93]{border-bottom-color:var(--vp-c-divider)}}[data-v-c9cfcc93] .logo{margin-right:8px;height:24px}/*! @docsearch/css 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-soft-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:1px;letter-spacing:-12px;color:transparent}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:var(--vp-meta-key);font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-soft-mute)}.DocSearch-Screen-Icon>svg{margin:auto}.icon[data-v-f3ed0000]{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;fill:var(--vp-c-text-3);transition:fill .25s;flex-shrink:0}.VPNavBarMenuLink[data-v-7f10a92a]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-7f10a92a],.VPNavBarMenuLink[data-v-7f10a92a]:hover{color:var(--vp-c-brand)}.VPMenuGroup+.VPMenuLink[data-v-2a4d50e5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-2a4d50e5]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-2a4d50e5]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-elv-mute)}.link.active[data-v-2a4d50e5]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-a6b0397c]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-a6b0397c]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-a6b0397c]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-a6b0397c]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e42ed9b3]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e42ed9b3] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e42ed9b3] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e42ed9b3] .group:last-child{padding-bottom:0}.VPMenu[data-v-e42ed9b3] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e42ed9b3] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e42ed9b3] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e42ed9b3] .action{padding-left:24px}.VPFlyout[data-v-6afe904b]{position:relative}.VPFlyout[data-v-6afe904b]:hover{color:var(--vp-c-brand);transition:color .25s}.VPFlyout:hover .text[data-v-6afe904b]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-6afe904b]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-6afe904b]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-6afe904b]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-6afe904b],.button[aria-expanded=true]+.menu[data-v-6afe904b]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-6afe904b]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-6afe904b]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-6afe904b]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-6afe904b]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-6afe904b]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-6afe904b]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPNavBarMenu[data-v-f732b5d0]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-f732b5d0]{display:flex}}.VPNavBarTranslations[data-v-ff4524ae]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-ff4524ae]{display:flex;align-items:center}}.title[data-v-ff4524ae]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPSwitch[data-v-92d8f6fb]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s}.VPSwitch[data-v-92d8f6fb]:hover{border-color:var(--vp-input-hover-border-color)}.check[data-v-92d8f6fb]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s}.icon[data-v-92d8f6fb]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-92d8f6fb] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-92d8f6fb] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-a99ed743]{opacity:1}.moon[data-v-a99ed743],.dark .sun[data-v-a99ed743]{opacity:0}.dark .moon[data-v-a99ed743]{opacity:1}.dark .VPSwitchAppearance[data-v-a99ed743] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-5e9f0637]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-5e9f0637]{display:flex;align-items:center}}.VPSocialLink[data-v-06866c4b]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-06866c4b]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-06866c4b]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-e71e869c]{display:flex;justify-content:center}.VPNavBarSocialLinks[data-v-ef6192dc]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-ef6192dc]{display:flex;align-items:center}}.VPNavBarExtra[data-v-c8c2ae4b]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-c8c2ae4b]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-c8c2ae4b]{display:none}}.trans-title[data-v-c8c2ae4b]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-c8c2ae4b],.item.social-links[data-v-c8c2ae4b]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-c8c2ae4b]{min-width:176px}.appearance-action[data-v-c8c2ae4b]{margin-right:-2px}.social-links-list[data-v-c8c2ae4b]{margin:-4px -8px}.VPNavBarHamburger[data-v-6bee1efd]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-6bee1efd]{display:none}}.container[data-v-6bee1efd]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-6bee1efd]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-6bee1efd]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-6bee1efd]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-6bee1efd]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-6bee1efd]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-6bee1efd]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-6bee1efd],.VPNavBarHamburger.active:hover .middle[data-v-6bee1efd],.VPNavBarHamburger.active:hover .bottom[data-v-6bee1efd]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-6bee1efd],.middle[data-v-6bee1efd],.bottom[data-v-6bee1efd]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-6bee1efd]{top:0;left:0;transform:translate(0)}.middle[data-v-6bee1efd]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-6bee1efd]{top:12px;left:0;transform:translate(4px)}.VPNavBar[data-v-d797c19b]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap}@media (min-width: 768px){.VPNavBar[data-v-d797c19b]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-d797c19b]{padding:0}.VPNavBar.fill[data-v-d797c19b]:not(.has-sidebar){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-d797c19b]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-d797c19b],.container>.content[data-v-d797c19b]{pointer-events:none}.container[data-v-d797c19b] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-d797c19b]{max-width:100%}}.title[data-v-d797c19b]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-d797c19b]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-d797c19b]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-d797c19b]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-d797c19b]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-d797c19b]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-d797c19b]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .content-body[data-v-d797c19b],.VPNavBar.fill .content-body[data-v-d797c19b]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 768px){.content-body[data-v-d797c19b]{column-gap:.5rem}}.menu+.translations[data-v-d797c19b]:before,.menu+.appearance[data-v-d797c19b]:before,.menu+.social-links[data-v-d797c19b]:before,.translations+.appearance[data-v-d797c19b]:before,.appearance+.social-links[data-v-d797c19b]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-d797c19b]:before,.translations+.appearance[data-v-d797c19b]:before{margin-right:16px}.appearance+.social-links[data-v-d797c19b]:before{margin-left:16px}.social-links[data-v-d797c19b]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-d797c19b]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-d797c19b]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-d797c19b]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenMenuLink[data-v-08b49756]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-08b49756]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-97083fb3]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-97083fb3]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-f60dbfa7]{display:block}.title[data-v-f60dbfa7]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-10e00a88]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-10e00a88]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-10e00a88]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-10e00a88]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-10e00a88]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-10e00a88]{transform:rotate(45deg)}.button[data-v-10e00a88]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-10e00a88]:hover{color:var(--vp-c-brand)}.button-icon[data-v-10e00a88]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-10e00a88]:first-child{padding-top:0}.group+.group[data-v-10e00a88],.group+.item[data-v-10e00a88]{padding-top:4px}.VPNavScreenAppearance[data-v-0dc5cf49]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-0dc5cf49]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenTranslations[data-v-41505286]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-41505286]{height:auto}.title[data-v-41505286]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-41505286]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-41505286]{margin-right:8px}.icon.chevron[data-v-41505286]{margin-left:4px}.list[data-v-41505286]{padding:4px 0 0 24px}.link[data-v-41505286]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-183ec3ec]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-183ec3ec],.VPNavScreen.fade-leave-active[data-v-183ec3ec]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-183ec3ec],.VPNavScreen.fade-leave-active .container[data-v-183ec3ec]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-183ec3ec],.VPNavScreen.fade-leave-to[data-v-183ec3ec]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-183ec3ec],.VPNavScreen.fade-leave-to .container[data-v-183ec3ec]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-183ec3ec]{display:none}}.container[data-v-183ec3ec]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-183ec3ec],.menu+.appearance[data-v-183ec3ec],.translations+.appearance[data-v-183ec3ec]{margin-top:24px}.menu+.social-links[data-v-183ec3ec]{margin-top:16px}.appearance+.social-links[data-v-183ec3ec]{margin-top:16px}.VPNav[data-v-5bdc5df3]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-5bdc5df3]{position:fixed}}.root[data-v-a379eb72]{position:relative;z-index:1}.nested[data-v-a379eb72]{padding-left:13px}.outline-link[data-v-a379eb72]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:500}.outline-link[data-v-a379eb72]:hover,.outline-link.active[data-v-a379eb72]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-a379eb72]{padding-left:13px}.VPLocalNavOutlineDropdown[data-v-30830f13]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-30830f13]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-30830f13]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-30830f13]{color:var(--vp-c-text-1)}.icon[data-v-30830f13]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-30830f13] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-30830f13]{transform:rotate(90deg)}.items[data-v-30830f13]{position:absolute;left:20px;right:20px;top:64px;background-color:var(--vp-local-nav-bg-color);padding:4px 10px 16px;border:1px solid var(--vp-c-divider);border-radius:8px;max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.top-link[data-v-30830f13]{display:block;color:var(--vp-c-brand);font-size:13px;font-weight:500;padding:6px 0;margin:0 13px 10px;border-bottom:1px solid var(--vp-c-divider)}.flyout-enter-active[data-v-30830f13]{transition:all .2s ease-out}.flyout-leave-active[data-v-30830f13]{transition:all .15s ease-in}.flyout-enter-from[data-v-30830f13],.flyout-leave-to[data-v-30830f13]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-16394e0b]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--vp-c-gutter);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-16394e0b]{position:fixed}.VPLocalNav.reached-top[data-v-16394e0b]{border-top-color:transparent}@media (min-width: 960px){.VPLocalNav[data-v-16394e0b]{display:none}}.menu[data-v-16394e0b]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-16394e0b]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-16394e0b]{padding:0 32px}}.menu-icon[data-v-16394e0b]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-16394e0b]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-16394e0b]{padding:12px 32px 11px}}.VPSidebarItem.level-0[data-v-0bb349fd]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-0bb349fd]{padding-bottom:10px}.item[data-v-0bb349fd]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-0bb349fd]{cursor:pointer}.indicator[data-v-0bb349fd]{position:absolute;top:6px;bottom:6px;left:-17px;width:1px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-0bb349fd],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-0bb349fd],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-0bb349fd],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-0bb349fd]{background-color:var(--vp-c-brand)}.link[data-v-0bb349fd]{display:flex;align-items:center;flex-grow:1}.text[data-v-0bb349fd]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-0bb349fd]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-0bb349fd],.VPSidebarItem.level-2 .text[data-v-0bb349fd],.VPSidebarItem.level-3 .text[data-v-0bb349fd],.VPSidebarItem.level-4 .text[data-v-0bb349fd],.VPSidebarItem.level-5 .text[data-v-0bb349fd]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-0bb349fd],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-0bb349fd],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-0bb349fd],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-0bb349fd],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-0bb349fd],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-0bb349fd]{color:var(--vp-c-brand)}.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-0bb349fd],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-0bb349fd],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-0bb349fd],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-0bb349fd],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-0bb349fd],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-0bb349fd]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-0bb349fd],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-0bb349fd],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-0bb349fd],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-0bb349fd],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-0bb349fd],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-0bb349fd]{color:var(--vp-c-brand)}.caret[data-v-0bb349fd]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s}.item:hover .caret[data-v-0bb349fd]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-0bb349fd]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-0bb349fd]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-0bb349fd]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-0bb349fd],.VPSidebarItem.level-2 .items[data-v-0bb349fd],.VPSidebarItem.level-3 .items[data-v-0bb349fd],.VPSidebarItem.level-4 .items[data-v-0bb349fd],.VPSidebarItem.level-5 .items[data-v-0bb349fd]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-0bb349fd]{display:none}.VPSidebar[data-v-fe05da0a]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-fe05da0a]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-fe05da0a]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-fe05da0a]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-fe05da0a]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-fe05da0a]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-fe05da0a]{outline:0}.group+.group[data-v-fe05da0a]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-fe05da0a]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPButton[data-v-fa1633a1]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-fa1633a1]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-fa1633a1]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-fa1633a1]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-fa1633a1]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-fa1633a1]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-fa1633a1]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-fa1633a1]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-fa1633a1]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-fa1633a1]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-fa1633a1]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-fa1633a1]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-fa1633a1]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}.VPHero[data-v-73fffaef]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-73fffaef]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-73fffaef]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-73fffaef]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-73fffaef]{flex-direction:row}}.main[data-v-73fffaef]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-73fffaef]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-73fffaef]{text-align:left}}@media (min-width: 960px){.main[data-v-73fffaef]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-73fffaef]{max-width:592px}}.name[data-v-73fffaef],.text[data-v-73fffaef]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-73fffaef],.VPHero.has-image .text[data-v-73fffaef]{margin:0 auto}.name[data-v-73fffaef]{color:var(--vp-home-hero-name-color)}.clip[data-v-73fffaef]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-73fffaef],.text[data-v-73fffaef]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-73fffaef],.text[data-v-73fffaef]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-73fffaef],.VPHero.has-image .text[data-v-73fffaef]{margin:0}}.tagline[data-v-73fffaef]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-73fffaef]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-73fffaef]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-73fffaef]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-73fffaef]{margin:0}}.actions[data-v-73fffaef]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-73fffaef]{justify-content:center}@media (min-width: 640px){.actions[data-v-73fffaef]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-73fffaef]{justify-content:flex-start}}.action[data-v-73fffaef]{flex-shrink:0;padding:6px}.image[data-v-73fffaef]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-73fffaef]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-73fffaef]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-73fffaef]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-73fffaef]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-73fffaef]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-73fffaef]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-73fffaef]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-73fffaef]{width:320px;height:320px}}[data-v-73fffaef] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-73fffaef] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-73fffaef] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-5f01e926]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-5f01e926]:hover{border-color:var(--vp-c-brand);background-color:var(--vp-c-bg-soft-up)}.box[data-v-5f01e926]{display:flex;flex-direction:column;padding:24px;height:100%}.VPFeature[data-v-5f01e926] .VPImage{width:48px;height:48px;margin-bottom:20px}.icon[data-v-5f01e926]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-bg-soft-down);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-5f01e926]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-5f01e926]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-5f01e926]{padding-top:8px}.link-text-value[data-v-5f01e926]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.link-text-icon[data-v-5f01e926]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-fcd3089b]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-fcd3089b]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-fcd3089b]{padding:0 64px}}.container[data-v-fcd3089b]{margin:0 auto;max-width:1152px}.items[data-v-fcd3089b]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-fcd3089b]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-fcd3089b],.item.grid-4[data-v-fcd3089b],.item.grid-6[data-v-fcd3089b]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-fcd3089b],.item.grid-4[data-v-fcd3089b]{width:50%}.item.grid-3[data-v-fcd3089b],.item.grid-6[data-v-fcd3089b]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-fcd3089b]{width:25%}}.VPHome[data-v-20eabd3a]{padding-bottom:96px}.VPHome[data-v-20eabd3a] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-20eabd3a]{padding-bottom:128px}}.VPDocAsideOutline[data-v-c834746b]{display:none}.VPDocAsideOutline.has-outline[data-v-c834746b]{display:block}.content[data-v-c834746b]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-c834746b]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-c834746b]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-cb998dce]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-cb998dce]{flex-grow:1}.VPDocAside[data-v-cb998dce] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-cb998dce] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-cb998dce] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-0de45606]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-0de45606]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-fc0d1b73]{margin-top:64px}.edit-info[data-v-fc0d1b73]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-fc0d1b73]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-fc0d1b73]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-fc0d1b73]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-fc0d1b73]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-fc0d1b73]{border-top:1px solid var(--vp-c-divider);padding-top:24px}@media (min-width: 640px){.prev-next[data-v-fc0d1b73]{display:flex}}.pager.has-prev[data-v-fc0d1b73]{padding-top:8px}@media (min-width: 640px){.pager[data-v-fc0d1b73]{display:flex;flex-direction:column;flex-shrink:0;width:50%}.pager.has-prev[data-v-fc0d1b73]{padding-top:0;padding-left:16px}}.pager-link[data-v-fc0d1b73]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-fc0d1b73]:hover{border-color:var(--vp-c-brand)}.pager-link.next[data-v-fc0d1b73]{margin-left:auto;text-align:right}.desc[data-v-fc0d1b73]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-fc0d1b73]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDocOutlineDropdown[data-v-2d98506c]{margin-bottom:42px}.VPDocOutlineDropdown button[data-v-2d98506c]{display:block;font-size:14px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;border:1px solid var(--vp-c-border);padding:4px 12px;border-radius:8px}.VPDocOutlineDropdown button[data-v-2d98506c]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-2d98506c]{color:var(--vp-c-text-1)}.icon[data-v-2d98506c]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-2d98506c] .outline-link{font-size:13px}.open>.icon[data-v-2d98506c]{transform:rotate(90deg)}.items[data-v-2d98506c]{margin-top:10px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-c11df1f0]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-c11df1f0]{display:none}@media (min-width: 960px) and (max-width: 1280px){.VPDoc .VPDocOutlineDropdown[data-v-c11df1f0]{display:block}}@media (min-width: 768px){.VPDoc[data-v-c11df1f0]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-c11df1f0]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-c11df1f0]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-c11df1f0]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-c11df1f0]{display:flex;justify-content:center}.VPDoc .aside[data-v-c11df1f0]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-c11df1f0]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-c11df1f0]{max-width:1104px}}.container[data-v-c11df1f0]{margin:0 auto;width:100%}.aside[data-v-c11df1f0]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-c11df1f0]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-c11df1f0]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-c11df1f0]::-webkit-scrollbar{display:none}.aside-curtain[data-v-c11df1f0]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-c11df1f0]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-c11df1f0]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-c11df1f0]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-c11df1f0]{order:1;margin:0;min-width:640px}}.content-container[data-v-c11df1f0]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-c11df1f0]{max-width:688px}.NotFound[data-v-e5bd6573]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-e5bd6573]{padding:96px 32px 168px}}.code[data-v-e5bd6573]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-e5bd6573]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-e5bd6573]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-e5bd6573]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-e5bd6573]{padding-top:20px}.link[data-v-e5bd6573]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-e5bd6573]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.VPContent[data-v-91952ce3]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-91952ce3]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-91952ce3]{margin:0}@media (min-width: 960px){.VPContent[data-v-91952ce3]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-91952ce3]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-91952ce3]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-8024ae35]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-8024ae35]{display:none}@media (min-width: 768px){.VPFooter[data-v-8024ae35]{padding:32px}}.container[data-v-8024ae35]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-8024ae35],.copyright[data-v-8024ae35]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.Layout[data-v-bffce215]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-978bd032]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-978bd032]{margin:0 auto;max-width:1152px}.love[data-v-978bd032]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-978bd032]{width:28px;height:28px;fill:currentColor}.message[data-v-978bd032]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-978bd032]{padding-top:32px}.action[data-v-978bd032]{padding-top:40px;text-align:center}.VPTeamPage[data-v-b1cfd8dc]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-b1cfd8dc]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-b1cfd8dc-s],.VPTeamMembers+.VPTeamPageSection[data-v-b1cfd8dc-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-b1cfd8dc-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-b1cfd8dc-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-b1cfd8dc-s],.VPTeamMembers+.VPTeamPageSection[data-v-b1cfd8dc-s]{margin-top:96px}}.VPTeamMembers[data-v-b1cfd8dc-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-b1cfd8dc-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-b1cfd8dc-s]{padding:0 64px}}.VPTeamPageTitle[data-v-46c5e327]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-46c5e327]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-46c5e327]{padding:80px 64px 48px}}.title[data-v-46c5e327]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-46c5e327]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-46c5e327]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-46c5e327]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-3bf2e850]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-3bf2e850]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-3bf2e850]{padding:0 64px}}.title[data-v-3bf2e850]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-3bf2e850]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-3bf2e850]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-3bf2e850]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-3bf2e850]{padding-top:40px}.VPTeamMembersItem[data-v-b0e83e62]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-b0e83e62]{padding:32px}.VPTeamMembersItem.small .data[data-v-b0e83e62]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-b0e83e62]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-b0e83e62]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-b0e83e62]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-b0e83e62]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-b0e83e62]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-b0e83e62]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-b0e83e62]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-b0e83e62]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-b0e83e62]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-b0e83e62]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-b0e83e62]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-b0e83e62]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-b0e83e62]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-b0e83e62]{text-align:center}.avatar[data-v-b0e83e62]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-b0e83e62]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-b0e83e62]{margin:0;font-weight:600}.affiliation[data-v-b0e83e62]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-b0e83e62]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-b0e83e62]:hover{color:var(--vp-c-brand)}.desc[data-v-b0e83e62]{margin:0 auto}.desc[data-v-b0e83e62] a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.links[data-v-b0e83e62]{display:flex;justify-content:center;height:56px}.sp-link[data-v-b0e83e62]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-b0e83e62]:hover,.sp .sp-link.link[data-v-b0e83e62]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-b0e83e62]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-6927e48e]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6927e48e]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6927e48e]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6927e48e]{max-width:876px}.VPTeamMembers.medium .container[data-v-6927e48e]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6927e48e]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6927e48e]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6927e48e]{max-width:760px}.container[data-v-6927e48e]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-c-brand: #00E0FF;--vp-c-brand-light: #00E0FF;--vp-c-brand-lighter: #00FF57;--vp-c-brand-dark: #00E0FF;--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient(135deg, #00E0FF 0%, #00FF57 100%)}html.dark{--vp-c-bg: #0a0a1e;--vp-c-bg-light: #141428;--vp-c-bg-lighter: #1e1e32;--vp-code-bg-color: #1e1e32;--vp-c-black-mute: #1e1e32;--vp-c-black: #1e1e32;--vp-c-bg-soft: #1e1e32} diff --git a/docs/assets/style.296d3996.css b/docs/assets/style.296d3996.css new file mode 100644 index 00000000..01a26a96 --- /dev/null +++ b/docs/assets/style.296d3996.css @@ -0,0 +1 @@ +@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-gray: #8e8e93;--vp-c-text-light-1: rgba(60, 60, 67);--vp-c-text-light-2: rgba(60, 60, 67, .75);--vp-c-text-light-3: rgba(60, 60, 67, .33);--vp-c-text-dark-1: rgba(255, 255, 245, .86);--vp-c-text-dark-2: rgba(235, 235, 245, .6);--vp-c-text-dark-3: rgba(235, 235, 245, .38);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #d97706;--vp-c-yellow-light: #f59e0b;--vp-c-yellow-lighter: #fbbf24;--vp-c-yellow-dark: #b45309;--vp-c-yellow-darker: #92400e;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5);--vp-c-sponsor: #db2777}:root{--vp-c-bg: #ffffff;--vp-c-bg-elv: #ffffff;--vp-c-bg-elv-up: #ffffff;--vp-c-bg-elv-down: #f6f6f7;--vp-c-bg-elv-mute: #f6f6f7;--vp-c-bg-soft: #f6f6f7;--vp-c-bg-soft-up: #f9f9fa;--vp-c-bg-soft-down: #e3e3e5;--vp-c-bg-soft-mute: #e3e3e5;--vp-c-bg-alt: #f6f6f7;--vp-c-border: rgba(60, 60, 67, .29);--vp-c-divider: rgba(60, 60, 67, .12);--vp-c-gutter: rgba(60, 60, 67, .12);--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-code: #476582;--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-mute: #f6f6f7;--vp-c-mute-light: #f9f9fc;--vp-c-mute-lighter: #ffffff;--vp-c-mute-dark: #e3e3e5;--vp-c-mute-darker: #d7d7d9}.dark{--vp-c-bg: #1e1e20;--vp-c-bg-elv: #252529;--vp-c-bg-elv-up: #313136;--vp-c-bg-elv-down: #1e1e20;--vp-c-bg-elv-mute: #313136;--vp-c-bg-soft: #252529;--vp-c-bg-soft-up: #313136;--vp-c-bg-soft-down: #1e1e20;--vp-c-bg-soft-mute: #313136;--vp-c-bg-alt: #161618;--vp-c-border: rgba(82, 82, 89, .68);--vp-c-divider: rgba(82, 82, 89, .32);--vp-c-gutter: #000000;--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-code: #c9def1;--vp-c-mute: #313136;--vp-c-mute-light: #3a3a3c;--vp-c-mute-lighter: #505053;--vp-c-mute-dark: #2c2c30;--vp-c-mute-darker: #252529}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-layout-top: 30;--vp-z-index-backdrop: 40;--vp-z-index-sidebar: 50;--vp-z-index-footer: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-c-code-dimm: var(--vp-c-text-dark-3);--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292b30;--vp-code-block-bg-light: #1e1e20;--vp-code-block-divider-color: #000000;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-line-diff-add-color: var(--vp-c-green-dimm-2);--vp-code-line-diff-add-symbol-color: var(--vp-c-green);--vp-code-line-diff-remove-color: var(--vp-c-red-dimm-2);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red);--vp-code-line-warning-color: var(--vp-c-yellow-dimm-2);--vp-code-line-error-color: var(--vp-c-red-dimm-2);--vp-code-copy-code-border-color: transparent;--vp-code-copy-code-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2);--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-dark-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-bar-color: var(--vp-c-brand)}.dark{--vp-code-block-bg: #161618}:root:not(.dark) .vp-adaptive-theme{--vp-c-code-dimm: var(--vp-c-text-2);--vp-code-block-color: var(--vp-c-text-1);--vp-code-block-bg: #f8f8f8;--vp-code-block-divider-color: var(--vp-c-divider);--vp-code-line-highlight-color: #ececec;--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-copy-code-bg: #e2e2e2;--vp-code-copy-code-hover-bg: #dcdcdc;--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-tab-divider: var(--vp-c-divider);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1)}:root{--vp-button-brand-border: var(--vp-c-brand-lighter);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-dark);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-darker);--vp-button-alt-border: var(--vp-c-border);--vp-button-alt-text: var(--vp-c-neutral);--vp-button-alt-bg: var(--vp-c-mute);--vp-button-alt-hover-border: var(--vp-c-border);--vp-button-alt-hover-text: var(--vp-c-neutral);--vp-button-alt-hover-bg: var(--vp-c-mute-dark);--vp-button-alt-active-border: var(--vp-c-border);--vp-button-alt-active-text: var(--vp-c-neutral);--vp-button-alt-active-bg: var(--vp-c-mute-darker);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-border);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-bg-soft-up);--vp-custom-block-info-code-bg: var(--vp-c-bg-soft);--vp-custom-block-tip-border: var(--vp-c-green);--vp-custom-block-tip-text: var(--vp-c-green-dark);--vp-custom-block-tip-bg: var(--vp-c-bg-soft-up);--vp-custom-block-tip-code-bg: var(--vp-c-bg-soft);--vp-custom-block-warning-border: var(--vp-c-yellow);--vp-custom-block-warning-text: var(--vp-c-yellow);--vp-custom-block-warning-bg: var(--vp-c-bg-soft-up);--vp-custom-block-warning-code-bg: var(--vp-c-bg-soft);--vp-custom-block-danger-border: var(--vp-c-red);--vp-custom-block-danger-text: var(--vp-c-red);--vp-custom-block-danger-bg: var(--vp-c-bg-soft-up);--vp-custom-block-danger-code-bg: var(--vp-c-bg-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-hover-border-color: var(--vp-c-gray);--vp-input-switch-bg-color: var(--vp-c-mute)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: var(--vp-c-border);--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-bg-soft-up);--vp-badge-tip-border: var(--vp-c-green-dark);--vp-badge-tip-text: var(--vp-c-green);--vp-badge-tip-bg: var(--vp-c-green-dimm-1);--vp-badge-warning-border: var(--vp-c-yellow-dark);--vp-badge-warning-text: var(--vp-c-yellow);--vp-badge-warning-bg: var(--vp-c-yellow-dimm-1);--vp-badge-danger-border: var(--vp-c-red-dark);--vp-badge-danger-text: var(--vp-c-red);--vp-badge-danger-bg: var(--vp-c-red-dimm-1)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand);--vp-local-search-highlight-bg: var(--vp-c-green-lighter);--vp-local-search-highlight-text: var(--vp-c-black)}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600}.custom-block a:hover{text-decoration:underline}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden}.vp-code-group .tabs:after{position:absolute;right:0;bottom:0;left:0;height:1px;background-color:var(--vp-code-tab-divider);content:""}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:absolute;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:1px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-]{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active{display:block}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{text-decoration:underline}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600}.vp-doc .custom-block a:hover{text-decoration:underline}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;left:-65px;display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-code-dimm);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-soft-down)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-ce917cfb]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:10px;padding:0 8px;line-height:18px;font-size:12px;font-weight:600;transform:translateY(-2px)}h1 .VPBadge[data-v-ce917cfb],h2 .VPBadge[data-v-ce917cfb],h3 .VPBadge[data-v-ce917cfb],h4 .VPBadge[data-v-ce917cfb],h5 .VPBadge[data-v-ce917cfb],h6 .VPBadge[data-v-ce917cfb]{vertical-align:top}h2 .VPBadge[data-v-ce917cfb]{border-radius:11px;line-height:20px}.VPBadge.info[data-v-ce917cfb]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-ce917cfb]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-ce917cfb]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-ce917cfb]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-54a304ca]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-54a304ca],.VPBackdrop.fade-leave-to[data-v-54a304ca]{opacity:0}.VPBackdrop.fade-leave-active[data-v-54a304ca]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-54a304ca]{display:none}}.NotFound[data-v-e5bd6573]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-e5bd6573]{padding:96px 32px 168px}}.code[data-v-e5bd6573]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-e5bd6573]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-e5bd6573]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-e5bd6573]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-e5bd6573]{padding-top:20px}.link[data-v-e5bd6573]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-e5bd6573]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.root[data-v-89c8d7c6]{position:relative;z-index:1}.nested[data-v-89c8d7c6]{padding-left:13px}.outline-link[data-v-89c8d7c6]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:500}.outline-link[data-v-89c8d7c6]:hover,.outline-link.active[data-v-89c8d7c6]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-89c8d7c6]{padding-left:13px}.VPDocAsideOutline[data-v-c834746b]{display:none}.VPDocAsideOutline.has-outline[data-v-c834746b]{display:block}.content[data-v-c834746b]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-c834746b]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-c834746b]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-cb998dce]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-cb998dce]{flex-grow:1}.VPDocAside[data-v-cb998dce] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-cb998dce] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-cb998dce] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-b89b6307]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-b89b6307]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-5774f702]{margin-top:64px}.edit-info[data-v-5774f702]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-5774f702]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-5774f702]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-5774f702]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-5774f702]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-5774f702]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-5774f702]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-5774f702]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-5774f702]:hover{border-color:var(--vp-c-brand)}.pager-link.next[data-v-5774f702]{margin-left:auto;text-align:right}.desc[data-v-5774f702]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-5774f702]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDocOutlineDropdown[data-v-2d98506c]{margin-bottom:42px}.VPDocOutlineDropdown button[data-v-2d98506c]{display:block;font-size:14px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;border:1px solid var(--vp-c-border);padding:4px 12px;border-radius:8px}.VPDocOutlineDropdown button[data-v-2d98506c]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-2d98506c]{color:var(--vp-c-text-1)}.icon[data-v-2d98506c]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-2d98506c] .outline-link{font-size:13px}.open>.icon[data-v-2d98506c]{transform:rotate(90deg)}.items[data-v-2d98506c]{margin-top:10px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-a3c25e27]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-a3c25e27]{display:none}@media (min-width: 960px) and (max-width: 1279px){.VPDoc .VPDocOutlineDropdown[data-v-a3c25e27]{display:block}}@media (min-width: 768px){.VPDoc[data-v-a3c25e27]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-a3c25e27]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-a3c25e27]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-a3c25e27]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-a3c25e27]{display:flex;justify-content:center}.VPDoc .aside[data-v-a3c25e27]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-a3c25e27]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-a3c25e27]{max-width:1104px}}.container[data-v-a3c25e27]{margin:0 auto;width:100%}.aside[data-v-a3c25e27]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-a3c25e27]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-a3c25e27]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-a3c25e27]::-webkit-scrollbar{display:none}.aside-curtain[data-v-a3c25e27]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-a3c25e27]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-a3c25e27]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-a3c25e27]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-a3c25e27]{order:1;margin:0;min-width:640px}}.content-container[data-v-a3c25e27]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-a3c25e27]{max-width:688px}.external-link-icon-enabled[data-v-a3c25e27] :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.VPButton[data-v-fa1633a1]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-fa1633a1]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-fa1633a1]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-fa1633a1]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-fa1633a1]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-fa1633a1]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-fa1633a1]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-fa1633a1]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-fa1633a1]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-fa1633a1]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-fa1633a1]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-fa1633a1]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-fa1633a1]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-dc109a54]{display:none}.dark .VPImage.light[data-v-dc109a54]{display:none}.VPHero[data-v-5a3e9999]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-5a3e9999]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-5a3e9999]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-5a3e9999]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-5a3e9999]{flex-direction:row}}.main[data-v-5a3e9999]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-5a3e9999]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-5a3e9999]{text-align:left}}@media (min-width: 960px){.main[data-v-5a3e9999]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-5a3e9999]{max-width:592px}}.name[data-v-5a3e9999],.text[data-v-5a3e9999]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-5a3e9999],.VPHero.has-image .text[data-v-5a3e9999]{margin:0 auto}.name[data-v-5a3e9999]{color:var(--vp-home-hero-name-color)}.clip[data-v-5a3e9999]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-5a3e9999],.text[data-v-5a3e9999]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-5a3e9999],.text[data-v-5a3e9999]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-5a3e9999],.VPHero.has-image .text[data-v-5a3e9999]{margin:0}}.tagline[data-v-5a3e9999]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-5a3e9999]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-5a3e9999]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-5a3e9999]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-5a3e9999]{margin:0}}.actions[data-v-5a3e9999]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-5a3e9999]{justify-content:center}@media (min-width: 640px){.actions[data-v-5a3e9999]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-5a3e9999]{justify-content:flex-start}}.action[data-v-5a3e9999]{flex-shrink:0;padding:6px}.image[data-v-5a3e9999]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-5a3e9999]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-5a3e9999]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-5a3e9999]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-5a3e9999]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-5a3e9999]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-5a3e9999]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-5a3e9999]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-5a3e9999]{width:320px;height:320px}}[data-v-5a3e9999] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-5a3e9999] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-5a3e9999] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-37d05ba9]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-37d05ba9]:hover{border-color:var(--vp-c-brand);background-color:var(--vp-c-bg-soft-up)}.box[data-v-37d05ba9]{display:flex;flex-direction:column;padding:24px;height:100%}.VPFeature[data-v-37d05ba9] .VPImage{width:48px;height:48px;margin-bottom:20px}.icon[data-v-37d05ba9]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-bg-soft-down);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-37d05ba9]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-37d05ba9]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-37d05ba9]{padding-top:8px}.link-text-value[data-v-37d05ba9]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.link-text-icon[data-v-37d05ba9]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-fcd3089b]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-fcd3089b]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-fcd3089b]{padding:0 64px}}.container[data-v-fcd3089b]{margin:0 auto;max-width:1152px}.items[data-v-fcd3089b]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-fcd3089b]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-fcd3089b],.item.grid-4[data-v-fcd3089b],.item.grid-6[data-v-fcd3089b]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-fcd3089b],.item.grid-4[data-v-fcd3089b]{width:50%}.item.grid-3[data-v-fcd3089b],.item.grid-6[data-v-fcd3089b]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-fcd3089b]{width:25%}}.VPHome[data-v-20eabd3a]{padding-bottom:96px}.VPHome[data-v-20eabd3a] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-20eabd3a]{padding-bottom:128px}}.VPContent[data-v-f0629f57]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-f0629f57]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-f0629f57]{margin:0}@media (min-width: 960px){.VPContent[data-v-f0629f57]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-f0629f57]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-f0629f57]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e4279f1c]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e4279f1c]{display:none}@media (min-width: 768px){.VPFooter[data-v-e4279f1c]{padding:32px}}.container[data-v-e4279f1c]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e4279f1c],.copyright[data-v-e4279f1c]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-bd10e8af]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-bd10e8af]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-bd10e8af]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-bd10e8af]{color:var(--vp-c-text-1)}.icon[data-v-bd10e8af]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-bd10e8af] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-bd10e8af]{transform:rotate(90deg)}.items[data-v-bd10e8af]{position:absolute;left:20px;right:20px;top:64px;background-color:var(--vp-local-nav-bg-color);padding:4px 10px 16px;border:1px solid var(--vp-c-divider);border-radius:8px;max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.top-link[data-v-bd10e8af]{display:block;color:var(--vp-c-brand);font-size:13px;font-weight:500;padding:6px 0;margin:0 13px 10px;border-bottom:1px solid var(--vp-c-divider)}.flyout-enter-active[data-v-bd10e8af]{transition:all .2s ease-out}.flyout-leave-active[data-v-bd10e8af]{transition:all .15s ease-in}.flyout-enter-from[data-v-bd10e8af],.flyout-leave-to[data-v-bd10e8af]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-693d654a]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--vp-c-gutter);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-693d654a]{position:fixed}.VPLocalNav.reached-top[data-v-693d654a]{border-top-color:transparent}@media (min-width: 960px){.VPLocalNav[data-v-693d654a]{display:none}}.menu[data-v-693d654a]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-693d654a]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-693d654a]{padding:0 32px}}.menu-icon[data-v-693d654a]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-693d654a]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-693d654a]{padding:12px 32px 11px}}.VPSwitch[data-v-92d8f6fb]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s}.VPSwitch[data-v-92d8f6fb]:hover{border-color:var(--vp-input-hover-border-color)}.check[data-v-92d8f6fb]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s}.icon[data-v-92d8f6fb]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-92d8f6fb] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-92d8f6fb] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-a99ed743]{opacity:1}.moon[data-v-a99ed743],.dark .sun[data-v-a99ed743]{opacity:0}.dark .moon[data-v-a99ed743]{opacity:1}.dark .VPSwitchAppearance[data-v-a99ed743] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-5e9f0637]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-5e9f0637]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-2a4d50e5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-2a4d50e5]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-2a4d50e5]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-elv-mute)}.link.active[data-v-2a4d50e5]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-a6b0397c]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-a6b0397c]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-a6b0397c]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-a6b0397c]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e42ed9b3]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e42ed9b3] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e42ed9b3] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e42ed9b3] .group:last-child{padding-bottom:0}.VPMenu[data-v-e42ed9b3] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e42ed9b3] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e42ed9b3] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e42ed9b3] .action{padding-left:24px}.VPFlyout[data-v-6afe904b]{position:relative}.VPFlyout[data-v-6afe904b]:hover{color:var(--vp-c-brand);transition:color .25s}.VPFlyout:hover .text[data-v-6afe904b]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-6afe904b]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-6afe904b]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-6afe904b]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-6afe904b],.button[aria-expanded=true]+.menu[data-v-6afe904b]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-6afe904b]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-6afe904b]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-6afe904b]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-6afe904b]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-6afe904b]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-6afe904b]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-16cf740a]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-16cf740a]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-16cf740a]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-e71e869c]{display:flex;justify-content:center}.VPNavBarExtra[data-v-c8c2ae4b]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-c8c2ae4b]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-c8c2ae4b]{display:none}}.trans-title[data-v-c8c2ae4b]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-c8c2ae4b],.item.social-links[data-v-c8c2ae4b]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-c8c2ae4b]{min-width:176px}.appearance-action[data-v-c8c2ae4b]{margin-right:-2px}.social-links-list[data-v-c8c2ae4b]{margin:-4px -8px}.VPNavBarHamburger[data-v-6bee1efd]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-6bee1efd]{display:none}}.container[data-v-6bee1efd]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-6bee1efd]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-6bee1efd]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-6bee1efd]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-6bee1efd]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-6bee1efd]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-6bee1efd]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-6bee1efd],.VPNavBarHamburger.active:hover .middle[data-v-6bee1efd],.VPNavBarHamburger.active:hover .bottom[data-v-6bee1efd]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-6bee1efd],.middle[data-v-6bee1efd],.bottom[data-v-6bee1efd]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-6bee1efd]{top:0;left:0;transform:translate(0)}.middle[data-v-6bee1efd]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-6bee1efd]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-7f10a92a]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-7f10a92a],.VPNavBarMenuLink[data-v-7f10a92a]:hover{color:var(--vp-c-brand)}.VPNavBarMenu[data-v-f732b5d0]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-f732b5d0]{display:flex}}/*! @docsearch/css 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-soft-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:1px;letter-spacing:-12px;color:transparent}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:var(--vp-meta-key);font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-soft-mute)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-ef6192dc]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-ef6192dc]{display:flex;align-items:center}}.title[data-v-6d57964e]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-6d57964e]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-6d57964e]{border-bottom-color:var(--vp-c-divider)}}[data-v-6d57964e] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-ff4524ae]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-ff4524ae]{display:flex;align-items:center}}.title[data-v-ff4524ae]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-4077a65e]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap}@media (min-width: 768px){.VPNavBar[data-v-4077a65e]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-4077a65e]{padding:0}.VPNavBar.fill[data-v-4077a65e]:not(.has-sidebar){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-4077a65e]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-4077a65e],.container>.content[data-v-4077a65e]{pointer-events:none}.container[data-v-4077a65e] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-4077a65e]{max-width:100%}}.title[data-v-4077a65e]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-4077a65e]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-4077a65e]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-4077a65e]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-4077a65e]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-4077a65e]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-4077a65e]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .content-body[data-v-4077a65e],.VPNavBar.fill .content-body[data-v-4077a65e]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 768px){.content-body[data-v-4077a65e]{column-gap:.5rem}}.menu+.translations[data-v-4077a65e]:before,.menu+.appearance[data-v-4077a65e]:before,.menu+.social-links[data-v-4077a65e]:before,.translations+.appearance[data-v-4077a65e]:before,.appearance+.social-links[data-v-4077a65e]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-4077a65e]:before,.translations+.appearance[data-v-4077a65e]:before{margin-right:16px}.appearance+.social-links[data-v-4077a65e]:before{margin-left:16px}.social-links[data-v-4077a65e]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-4077a65e]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-4077a65e]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-4077a65e]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenMenuLink[data-v-08b49756]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-08b49756]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-97083fb3]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-97083fb3]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-f60dbfa7]{display:block}.title[data-v-f60dbfa7]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-10e00a88]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-10e00a88]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-10e00a88]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-10e00a88]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-10e00a88]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-10e00a88]{transform:rotate(45deg)}.button[data-v-10e00a88]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-10e00a88]:hover{color:var(--vp-c-brand)}.button-icon[data-v-10e00a88]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-10e00a88]:first-child{padding-top:0}.group+.group[data-v-10e00a88],.group+.item[data-v-10e00a88]{padding-top:4px}.VPNavScreenAppearance[data-v-0dc5cf49]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-0dc5cf49]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenTranslations[data-v-41505286]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-41505286]{height:auto}.title[data-v-41505286]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-41505286]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-41505286]{margin-right:8px}.icon.chevron[data-v-41505286]{margin-left:4px}.list[data-v-41505286]{padding:4px 0 0 24px}.link[data-v-41505286]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-dc785598]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-dc785598],.VPNavScreen.fade-leave-active[data-v-dc785598]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-dc785598],.VPNavScreen.fade-leave-active .container[data-v-dc785598]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-dc785598],.VPNavScreen.fade-leave-to[data-v-dc785598]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-dc785598],.VPNavScreen.fade-leave-to .container[data-v-dc785598]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-dc785598]{display:none}}.container[data-v-dc785598]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-dc785598],.menu+.appearance[data-v-dc785598],.translations+.appearance[data-v-dc785598]{margin-top:24px}.menu+.social-links[data-v-dc785598]{margin-top:16px}.appearance+.social-links[data-v-dc785598]{margin-top:16px}.VPNav[data-v-5bdc5df3]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-5bdc5df3]{position:fixed}}.VPSidebarItem.level-0[data-v-66c2f55a]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-66c2f55a]{padding-bottom:10px}.item[data-v-66c2f55a]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-66c2f55a]{cursor:pointer}.indicator[data-v-66c2f55a]{position:absolute;top:6px;bottom:6px;left:-17px;width:1px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-66c2f55a],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-66c2f55a],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-66c2f55a],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-66c2f55a]{background-color:var(--vp-c-brand)}.link[data-v-66c2f55a]{display:flex;align-items:center;flex-grow:1}.text[data-v-66c2f55a]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-66c2f55a]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-66c2f55a],.VPSidebarItem.level-2 .text[data-v-66c2f55a],.VPSidebarItem.level-3 .text[data-v-66c2f55a],.VPSidebarItem.level-4 .text[data-v-66c2f55a],.VPSidebarItem.level-5 .text[data-v-66c2f55a]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-66c2f55a],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-66c2f55a],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-66c2f55a],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-66c2f55a],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-66c2f55a],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-66c2f55a]{color:var(--vp-c-brand)}.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-66c2f55a],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-66c2f55a],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-66c2f55a],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-66c2f55a],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-66c2f55a],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-66c2f55a]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-66c2f55a],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-66c2f55a],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-66c2f55a],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-66c2f55a],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-66c2f55a],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-66c2f55a]{color:var(--vp-c-brand)}.caret[data-v-66c2f55a]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-66c2f55a]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-66c2f55a]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-66c2f55a]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-66c2f55a]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-66c2f55a],.VPSidebarItem.level-2 .items[data-v-66c2f55a],.VPSidebarItem.level-3 .items[data-v-66c2f55a],.VPSidebarItem.level-4 .items[data-v-66c2f55a],.VPSidebarItem.level-5 .items[data-v-66c2f55a]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-66c2f55a]{display:none}.VPSidebar[data-v-b04a928c]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-b04a928c]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-b04a928c]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-b04a928c]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-b04a928c]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-b04a928c]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-b04a928c]{outline:0}.group+.group[data-v-b04a928c]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-b04a928c]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-9c8615dd]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-9c8615dd]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-9c8615dd]{top:14px;left:16px}}.Layout[data-v-ffdc1df7]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-978bd032]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-978bd032]{margin:0 auto;max-width:1152px}.love[data-v-978bd032]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-978bd032]{width:28px;height:28px;fill:currentColor}.message[data-v-978bd032]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-978bd032]{padding-top:32px}.action[data-v-978bd032]{padding-top:40px;text-align:center}.VPTeamPage[data-v-b1cfd8dc]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-b1cfd8dc]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-b1cfd8dc-s],.VPTeamMembers+.VPTeamPageSection[data-v-b1cfd8dc-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-b1cfd8dc-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-b1cfd8dc-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-b1cfd8dc-s],.VPTeamMembers+.VPTeamPageSection[data-v-b1cfd8dc-s]{margin-top:96px}}.VPTeamMembers[data-v-b1cfd8dc-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-b1cfd8dc-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-b1cfd8dc-s]{padding:0 64px}}.VPTeamPageTitle[data-v-46c5e327]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-46c5e327]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-46c5e327]{padding:80px 64px 48px}}.title[data-v-46c5e327]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-46c5e327]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-46c5e327]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-46c5e327]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-3bf2e850]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-3bf2e850]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-3bf2e850]{padding:0 64px}}.title[data-v-3bf2e850]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-3bf2e850]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-3bf2e850]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-3bf2e850]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-3bf2e850]{padding-top:40px}.VPTeamMembersItem[data-v-b0e83e62]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-b0e83e62]{padding:32px}.VPTeamMembersItem.small .data[data-v-b0e83e62]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-b0e83e62]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-b0e83e62]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-b0e83e62]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-b0e83e62]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-b0e83e62]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-b0e83e62]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-b0e83e62]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-b0e83e62]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-b0e83e62]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-b0e83e62]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-b0e83e62]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-b0e83e62]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-b0e83e62]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-b0e83e62]{text-align:center}.avatar[data-v-b0e83e62]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-b0e83e62]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-b0e83e62]{margin:0;font-weight:600}.affiliation[data-v-b0e83e62]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-b0e83e62]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-b0e83e62]:hover{color:var(--vp-c-brand)}.desc[data-v-b0e83e62]{margin:0 auto}.desc[data-v-b0e83e62] a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.links[data-v-b0e83e62]{display:flex;justify-content:center;height:56px}.sp-link[data-v-b0e83e62]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-b0e83e62]:hover,.sp .sp-link.link[data-v-b0e83e62]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-b0e83e62]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-6927e48e]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6927e48e]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6927e48e]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6927e48e]{max-width:876px}.VPTeamMembers.medium .container[data-v-6927e48e]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6927e48e]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6927e48e]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6927e48e]{max-width:760px}.container[data-v-6927e48e]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-c-brand: #00E0FF;--vp-c-brand-light: #00E0FF;--vp-c-brand-lighter: #00FF57;--vp-c-brand-dark: #00E0FF;--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient(135deg, #00E0FF 0%, #00FF57 100%)}html.dark{--vp-c-bg: #0a0a1e;--vp-c-bg-light: #141428;--vp-c-bg-lighter: #1e1e32;--vp-code-bg-color: #1e1e32;--vp-c-black-mute: #1e1e32;--vp-c-black: #1e1e32;--vp-c-bg-soft: #1e1e32} diff --git a/docs/assets/ui-helpers.md.a8059bb6.js b/docs/assets/ui-helpers.md.63c75787.js similarity index 92% rename from docs/assets/ui-helpers.md.a8059bb6.js rename to docs/assets/ui-helpers.md.63c75787.js index 6a72a9dc..0067c729 100644 --- a/docs/assets/ui-helpers.md.a8059bb6.js +++ b/docs/assets/ui-helpers.md.63c75787.js @@ -1 +1 @@ -import{_ as e,o as t,c as a,R as r}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"UiHelpers","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers.md","filePath":"ui-helpers.md","lastUpdated":1673177457000}'),s={name:"ui-helpers.md"},i=r('

UiHelpers

This page is about the exceptions available in PeyrSharp.UiHelpers. They are grouped by category.

Compatibility

UiHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Classes

',7),l=[i];function o(d,h,p,n,c,m){return t(),a("div",null,l)}const f=e(s,[["render",o]]);export{u as __pageData,f as default}; +import{_ as e,o as t,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"UiHelpers","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers.md","filePath":"ui-helpers.md","lastUpdated":1673177457000}'),s={name:"ui-helpers.md"},i=r('

UiHelpers

This page is about the exceptions available in PeyrSharp.UiHelpers. They are grouped by category.

Compatibility

UiHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Classes

',7),l=[i];function o(d,h,p,n,c,m){return t(),a("div",null,l)}const f=e(s,[["render",o]]);export{u as __pageData,f as default}; diff --git a/docs/assets/ui-helpers.md.a8059bb6.lean.js b/docs/assets/ui-helpers.md.63c75787.lean.js similarity index 68% rename from docs/assets/ui-helpers.md.a8059bb6.lean.js rename to docs/assets/ui-helpers.md.63c75787.lean.js index 659496bd..60130d37 100644 --- a/docs/assets/ui-helpers.md.a8059bb6.lean.js +++ b/docs/assets/ui-helpers.md.63c75787.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as a,R as r}from"./chunks/framework.fed62f4c.js";const u=JSON.parse('{"title":"UiHelpers","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers.md","filePath":"ui-helpers.md","lastUpdated":1673177457000}'),s={name:"ui-helpers.md"},i=r("",7),l=[i];function o(d,h,p,n,c,m){return t(),a("div",null,l)}const f=e(s,[["render",o]]);export{u as __pageData,f as default}; +import{_ as e,o as t,c as a,U as r}from"./chunks/framework.1eef7d9b.js";const u=JSON.parse('{"title":"UiHelpers","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers.md","filePath":"ui-helpers.md","lastUpdated":1673177457000}'),s={name:"ui-helpers.md"},i=r("",7),l=[i];function o(d,h,p,n,c,m){return t(),a("div",null,l)}const f=e(s,[["render",o]]);export{u as __pageData,f as default}; diff --git a/docs/assets/ui-helpers_screen.md.2ef9612d.js b/docs/assets/ui-helpers_screen.md.abf9d1aa.js similarity index 99% rename from docs/assets/ui-helpers_screen.md.2ef9612d.js rename to docs/assets/ui-helpers_screen.md.abf9d1aa.js index 3aa37180..f28f847e 100644 --- a/docs/assets/ui-helpers_screen.md.2ef9612d.js +++ b/docs/assets/ui-helpers_screen.md.abf9d1aa.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,R as e}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Screen","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/screen.md","filePath":"ui-helpers/screen.md","lastUpdated":1673177478000}'),l={name:"ui-helpers/screen.md"},o=e(`

Screen

This page is about the ScreenHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

ScreenHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

GetDpi(form)

Definition

Gets the DPI of the screen where the Windows Form is located. It returns a double value.

Arguments

TypeNameMeaning
FormformThe form to get the DPI of.

Usage

c#
using PeyrSharp.UiHelpers;
+import{_ as s,o as a,c as n,U as e}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Screen","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/screen.md","filePath":"ui-helpers/screen.md","lastUpdated":1673177478000}'),l={name:"ui-helpers/screen.md"},o=e(`

Screen

This page is about the ScreenHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

ScreenHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

GetDpi(form)

Definition

Gets the DPI of the screen where the Windows Form is located. It returns a double value.

Arguments

TypeNameMeaning
FormformThe form to get the DPI of.

Usage

c#
using PeyrSharp.UiHelpers;
 using System;
 using System.Windows.Forms;
 
diff --git a/docs/assets/ui-helpers_screen.md.2ef9612d.lean.js b/docs/assets/ui-helpers_screen.md.abf9d1aa.lean.js
similarity index 69%
rename from docs/assets/ui-helpers_screen.md.2ef9612d.lean.js
rename to docs/assets/ui-helpers_screen.md.abf9d1aa.lean.js
index 2e11efbf..53118166 100644
--- a/docs/assets/ui-helpers_screen.md.2ef9612d.lean.js
+++ b/docs/assets/ui-helpers_screen.md.abf9d1aa.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,R as e}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"Screen","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/screen.md","filePath":"ui-helpers/screen.md","lastUpdated":1673177478000}'),l={name:"ui-helpers/screen.md"},o=e("",38),t=[o];function p(r,c,i,d,y,F){return a(),n("div",null,t)}const h=s(l,[["render",p]]);export{D as __pageData,h as default};
+import{_ as s,o as a,c as n,U as e}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"Screen","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/screen.md","filePath":"ui-helpers/screen.md","lastUpdated":1673177478000}'),l={name:"ui-helpers/screen.md"},o=e("",38),t=[o];function p(r,c,i,d,y,F){return a(),n("div",null,t)}const h=s(l,[["render",p]]);export{D as __pageData,h as default};
diff --git a/docs/assets/ui-helpers_winforms.md.db7d438d.js b/docs/assets/ui-helpers_winforms.md.3d7797a8.js
similarity index 99%
rename from docs/assets/ui-helpers_winforms.md.db7d438d.js
rename to docs/assets/ui-helpers_winforms.md.3d7797a8.js
index 4151488c..a6e0bf2d 100644
--- a/docs/assets/ui-helpers_winforms.md.db7d438d.js
+++ b/docs/assets/ui-helpers_winforms.md.3d7797a8.js
@@ -1,4 +1,4 @@
-import{_ as s,o as n,c as a,R as o}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"WinForms","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/winforms.md","filePath":"ui-helpers/winforms.md","lastUpdated":1673177478000}'),e={name:"ui-helpers/winforms.md"},l=o(`

WinForms

This page is about the WinFormsHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

WinFormsHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

CenterControl(control, form)

Definition

Centers horizontally and vertically a Control on a Form.

Arguments

TypeNameMeaning
ControlcontrolThe control to center.
FormformThe form where the control needs to be centered.

Usage

c#
using PeyrSharp.UiHelpers;
+import{_ as s,o as n,c as a,U as o}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"WinForms","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/winforms.md","filePath":"ui-helpers/winforms.md","lastUpdated":1673177478000}'),e={name:"ui-helpers/winforms.md"},l=o(`

WinForms

This page is about the WinFormsHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

WinFormsHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

CenterControl(control, form)

Definition

Centers horizontally and vertically a Control on a Form.

Arguments

TypeNameMeaning
ControlcontrolThe control to center.
FormformThe form where the control needs to be centered.

Usage

c#
using PeyrSharp.UiHelpers;
 using System;
 using System.Windows.Forms;
 
diff --git a/docs/assets/ui-helpers_winforms.md.db7d438d.lean.js b/docs/assets/ui-helpers_winforms.md.3d7797a8.lean.js
similarity index 70%
rename from docs/assets/ui-helpers_winforms.md.db7d438d.lean.js
rename to docs/assets/ui-helpers_winforms.md.3d7797a8.lean.js
index eb870584..bc394d4b 100644
--- a/docs/assets/ui-helpers_winforms.md.db7d438d.lean.js
+++ b/docs/assets/ui-helpers_winforms.md.3d7797a8.lean.js
@@ -1 +1 @@
-import{_ as s,o as n,c as a,R as o}from"./chunks/framework.fed62f4c.js";const D=JSON.parse('{"title":"WinForms","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/winforms.md","filePath":"ui-helpers/winforms.md","lastUpdated":1673177478000}'),e={name:"ui-helpers/winforms.md"},l=o("",27),t=[l];function p(r,c,i,C,d,y){return n(),a("div",null,t)}const A=s(e,[["render",p]]);export{D as __pageData,A as default};
+import{_ as s,o as n,c as a,U as o}from"./chunks/framework.1eef7d9b.js";const D=JSON.parse('{"title":"WinForms","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/winforms.md","filePath":"ui-helpers/winforms.md","lastUpdated":1673177478000}'),e={name:"ui-helpers/winforms.md"},l=o("",27),t=[l];function p(r,c,i,C,d,y){return n(),a("div",null,t)}const A=s(e,[["render",p]]);export{D as __pageData,A as default};
diff --git a/docs/assets/ui-helpers_wpf.md.99234932.js b/docs/assets/ui-helpers_wpf.md.9c708ade.js
similarity index 96%
rename from docs/assets/ui-helpers_wpf.md.99234932.js
rename to docs/assets/ui-helpers_wpf.md.9c708ade.js
index 9886a709..81091198 100644
--- a/docs/assets/ui-helpers_wpf.md.99234932.js
+++ b/docs/assets/ui-helpers_wpf.md.9c708ade.js
@@ -1,4 +1,4 @@
-import{_ as e,o as t,c as a,R as s}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"WPF","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/wpf.md","filePath":"ui-helpers/wpf.md","lastUpdated":1673177430000}'),o={name:"ui-helpers/wpf.md"},n=s(`

WPF

This page is about the WpfHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

WinFormsHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

CenterWindow(window)

Definition

Centers a Window on the primary screen.

Arguments

TypeNameMeaning
WindowwindowThe Window to center.

Usage

c#
using PeyrSharp.UiHelpers;
+import{_ as e,o as t,c as a,U as s}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"WPF","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/wpf.md","filePath":"ui-helpers/wpf.md","lastUpdated":1673177430000}'),o={name:"ui-helpers/wpf.md"},n=s(`

WPF

This page is about the WpfHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

WinFormsHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

CenterWindow(window)

Definition

Centers a Window on the primary screen.

Arguments

TypeNameMeaning
WindowwindowThe Window to center.

Usage

c#
using PeyrSharp.UiHelpers;
 
 Window window = new Window();
 WpfHelpers.CenterWindow(window); // Center the window on the primary screen
`,13),r=[n];function l(i,d,p,c,h,m){return t(),a("div",null,r)}const u=e(o,[["render",l]]);export{y as __pageData,u as default}; diff --git a/docs/assets/ui-helpers_wpf.md.99234932.lean.js b/docs/assets/ui-helpers_wpf.md.9c708ade.lean.js similarity index 69% rename from docs/assets/ui-helpers_wpf.md.99234932.lean.js rename to docs/assets/ui-helpers_wpf.md.9c708ade.lean.js index 71fbb18c..d1db1c67 100644 --- a/docs/assets/ui-helpers_wpf.md.99234932.lean.js +++ b/docs/assets/ui-helpers_wpf.md.9c708ade.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as a,R as s}from"./chunks/framework.fed62f4c.js";const y=JSON.parse('{"title":"WPF","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/wpf.md","filePath":"ui-helpers/wpf.md","lastUpdated":1673177430000}'),o={name:"ui-helpers/wpf.md"},n=s("",13),r=[n];function l(i,d,p,c,h,m){return t(),a("div",null,r)}const u=e(o,[["render",l]]);export{y as __pageData,u as default}; +import{_ as e,o as t,c as a,U as s}from"./chunks/framework.1eef7d9b.js";const y=JSON.parse('{"title":"WPF","description":"","frontmatter":{},"headers":[],"relativePath":"ui-helpers/wpf.md","filePath":"ui-helpers/wpf.md","lastUpdated":1673177430000}'),o={name:"ui-helpers/wpf.md"},n=s("",13),r=[n];function l(i,d,p,c,h,m){return t(),a("div",null,r)}const u=e(o,[["render",l]]);export{y as __pageData,u as default}; diff --git a/docs/core.html b/docs/core.html index 77b48e21..ad1f664c 100644 --- a/docs/core.html +++ b/docs/core.html @@ -5,19 +5,19 @@ Core | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Core

This page is about the PeyrSharp.Core module.

Compatibility

The PeyrSharp.Core module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Namespaces

The Core namespace contains other namespaces:

Classes

Released under the MIT License.

- +
Skip to content
On this page

Core

This page is about the PeyrSharp.Core module.

Compatibility

The PeyrSharp.Core module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Namespaces

The Core namespace contains other namespaces:

Classes

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters.html b/docs/core/converters.html index be494a96..79bc6bb3 100644 --- a/docs/core/converters.html +++ b/docs/core/converters.html @@ -5,19 +5,19 @@ Converters | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Converters

This page is about the Converters namespace available in PeyrSharp.Core. You can find here all of its classes.

Compatibility

The Converters namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

Released under the MIT License.

- +
Skip to content
On this page

Converters

This page is about the Converters namespace available in PeyrSharp.Core. You can find here all of its classes.

Compatibility

The Converters namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/angle.html b/docs/core/converters/angle.html index f6fb833e..12bc796b 100644 --- a/docs/core/converters/angle.html +++ b/docs/core/converters/angle.html @@ -5,25 +5,25 @@ Angle | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Angle

This page is about the Angle class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Angle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

DegreesToRadians(degrees)

Definition

Converts degrees to radians. Returns a double value.

Arguments

TypeNameMeaning
doubledegreesNumber of degrees to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Angle

This page is about the Angle class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Angle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

DegreesToRadians(degrees)

Definition

Converts degrees to radians. Returns a double value.

Arguments

TypeNameMeaning
doubledegreesNumber of degrees to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double radians = Angle.DegreesToRadians(90);
 // radians = 1.5707963271535559

RadiansToDegrees(radians)

Definition

Converts radians to degrees. Returns a double value.

Arguments

TypeNameMeaning
doubleradiansNumber of radians to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double deg = Angle.RadiansToDegrees(1.2);
-// deg = 68.7549354

Released under the MIT License.

- +// deg = 68.7549354

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/colors/hex.html b/docs/core/converters/colors/hex.html index 69cb04fa..eb69a60d 100644 --- a/docs/core/converters/colors/hex.html +++ b/docs/core/converters/colors/hex.html @@ -5,25 +5,25 @@ HEX | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

HEX

This page is about the HEX class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The HEX class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

HEX(hex)

Initializes a hexadecimal class from a hexadecimal value.

Arguments

TypeNameMeaning
stringhexThe hexadecimal value (with or without #).

WARNING

If you specify a non-hexadecimal value, a HEXInvalidValueException will be thrown.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

HEX

This page is about the HEX class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The HEX class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

HEX(hex)

Initializes a hexadecimal class from a hexadecimal value.

Arguments

TypeNameMeaning
stringhexThe hexadecimal value (with or without #).

WARNING

If you specify a non-hexadecimal value, a HEXInvalidValueException will be thrown.

Usage

c#
using PeyrSharp.Core.Converters;
 
 HEX hex = new("#FF0A17");

Methods

ToRgb()

Definition

Converts the HEX color to RGB. Returns a RGB class.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Core.Converters;
 
 RGB rgb = new HEX("#FFFFFF").ToRgb();

ToHsv()

Definition

Converts the HEX color to HSV. Returns a HSV class.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Core.Converters;
 
-HSV hsv = new HEX("#E1077B").ToHsv();

Properties

Value

Definition

c#
public string Value { get; init; }

The Value property contains the hexadecimal value of the HEX color. You can only get this property.

Released under the MIT License.

- +HSV hsv = new HEX("#E1077B").ToHsv();

Properties

Value

Definition

c#
public string Value { get; init; }

The Value property contains the hexadecimal value of the HEX color. You can only get this property.

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/colors/hsv.html b/docs/core/converters/colors/hsv.html index 16465c5e..7488e610 100644 --- a/docs/core/converters/colors/hsv.html +++ b/docs/core/converters/colors/hsv.html @@ -5,21 +5,21 @@ HSV | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

HSV

This page is about the HSV class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The HSV class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

HSV(hue, saturation, value)

Definition

Initializes a HSV color from its hue, saturation, and value.

Arguments

TypeNameMeaning
inthueThe Hue of the color.
intsaturationThe saturation percentage.
intvalueThe value/brightness percentage.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

HSV

This page is about the HSV class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The HSV class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

HSV(hue, saturation, value)

Definition

Initializes a HSV color from its hue, saturation, and value.

Arguments

TypeNameMeaning
inthueThe Hue of the color.
intsaturationThe saturation percentage.
intvalueThe value/brightness percentage.

Usage

c#
using PeyrSharp.Core.Converters;
 
-HSV hsv = new(50, 75, 100);

Properties

Hue

Definition

c#
public int Hue { get; init; }

The Hue property contains the hue of the HSV color. You can only get this property.

Saturation

Definition

c#
public int Saturation { get; init; }

The Value property contains the saturation percentage of the HSV color. You can only get this property.

Value

Definition

c#
public int Value { get; init; }

The Value property contains the value/brightness percentage of the HSV color. You can only get this property.

Released under the MIT License.

- +HSV hsv = new(50, 75, 100);

Properties

Hue

Definition

c#
public int Hue { get; init; }

The Hue property contains the hue of the HSV color. You can only get this property.

Saturation

Definition

c#
public int Saturation { get; init; }

The Value property contains the saturation percentage of the HSV color. You can only get this property.

Value

Definition

c#
public int Value { get; init; }

The Value property contains the value/brightness percentage of the HSV color. You can only get this property.

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/colors/rgb.html b/docs/core/converters/colors/rgb.html index 6b39c174..3887e03c 100644 --- a/docs/core/converters/colors/rgb.html +++ b/docs/core/converters/colors/rgb.html @@ -5,17 +5,18 @@ RGB | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

RGB

This page is about the RGB class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The RGB class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

RGB(color)

Definition

Initializes a RGB class from a System.Drawing.Color. Returns a RGB class.

Arguments

TypeNameMeaning
ColorcolorThe RGB color.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

RGB

This page is about the RGB class available in PeyrSharp.Core.Converters. You can find here all of its methods and properties.

Compatibility

The RGB class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

RGB(color)

Definition

Initializes a RGB class from a System.Drawing.Color. Returns a RGB class.

Arguments

TypeNameMeaning
ColorcolorThe RGB color.

Usage

c#
using PeyrSharp.Core.Converters;
 using System.Drawing;
 
 RGB rgb = new(Color.FromArgb(255, 150, 120));

RGB(r, g, b)

Definition

Initializes a RGB class from its r, g and b values. Returns a RGB class.

Arguments

TypeNameMeaning
intrRed.
intgGreen.
intbBlue.

WARNING

If you specify a value that is not between 0 and 255, a RGBInvalidValueException will be thrown.

Usage

c#
using PeyrSharp.Core.Converters;
@@ -24,9 +25,8 @@
 
 HEX hex = new RGB(255, 0, 0).ToHex();

ToHsv()

Definition

Converts the RGB color to HSV. Returns a HSV class.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Core.Converters;
 
-HSV hsv = new RGB(255, 0, 0).ToHsv();

Properties

Color

Definition

c#
public Color Color { get; init; }

The Color property contains the RGB color as a System.Drawing.Color. You can only get this property.

Released under the MIT License.

- +HSV hsv = new RGB(255, 0, 0).ToHsv();

Properties

Color

Definition

c#
public Color Color { get; init; }

The Color property contains the RGB color as a System.Drawing.Color. You can only get this property.

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/distances.html b/docs/core/converters/distances.html index 3aa4b7a6..cf0ecafa 100644 --- a/docs/core/converters/distances.html +++ b/docs/core/converters/distances.html @@ -5,17 +5,18 @@ Distances | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Distances

This page is about the Distances class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Distances class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

MilesToKm(miles)

Definition

Converts miles to kilometers. Returns a double value.

Arguments

TypeNameMeaning
doublemilesNumber of mile(s) to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Distances

This page is about the Distances class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Distances class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

MilesToKm(miles)

Definition

Converts miles to kilometers. Returns a double value.

Arguments

TypeNameMeaning
doublemilesNumber of mile(s) to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double km = Distances.MilesToKm(10);
 // km = 16.09344

KmToMiles(km)

Definition

Converts kilometers to miles. Returns a double value.

Arguments

TypeNameMeaning
doublekilometersNumber of kilometers(s) to convert.

Usage

c#
using PeyrSharp.Core.Converters;
@@ -27,9 +28,8 @@
 // meters = 3.657599994440448

MetersToFeet(meters)

Definition

Converts meters to feet. Returns a double value.

Arguments

TypeNameMeaning
doublemetersNumber of meters to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double feet = Distances.MetersToFeet(3.657599994440448);
-// feet = 12

Released under the MIT License.

- +// feet = 12

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/energies.html b/docs/core/converters/energies.html index b8390967..94e54267 100644 --- a/docs/core/converters/energies.html +++ b/docs/core/converters/energies.html @@ -5,25 +5,25 @@ Energies | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Energies

This page is about the Energies class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Energies class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

CaloriesToJoules(calories)

Definition

Converts calories to joules.

Arguments

TypeNameMeaning
doublecaloriesThe amount of energy in calories to be converted.

Returns

The equivalent amount of energy in joules.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Energies

This page is about the Energies class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Energies class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

CaloriesToJoules(calories)

Definition

Converts calories to joules.

Arguments

TypeNameMeaning
doublecaloriesThe amount of energy in calories to be converted.

Returns

The equivalent amount of energy in joules.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double calories = 100.0;
 double joules = Energies.CaloriesToJoules(calories);

JoulesToCalories(joules)

Definition

Converts joules to calories.

Arguments

TypeNameMeaning
doublejoulesThe amount of energy in joules.

Returns

The equivalent amount of energy in calories.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double joules = 1000.0;
-double calories = Energies.JoulesToCalories(joules);

Released under the MIT License.

- +double calories = Energies.JoulesToCalories(joules);

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/masses.html b/docs/core/converters/masses.html index eff8789a..3f1dbd70 100644 --- a/docs/core/converters/masses.html +++ b/docs/core/converters/masses.html @@ -5,25 +5,25 @@ Masses | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Masses

This page is about the Masses class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Masses class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

PoundsToKilograms(pounds)

Definition

Converts pounds to kilograms. Returns a double value.

Arguments

TypeNameMeaning
doublepoundsNumber of pounds to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Masses

This page is about the Masses class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Masses class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

PoundsToKilograms(pounds)

Definition

Converts pounds to kilograms. Returns a double value.

Arguments

TypeNameMeaning
doublepoundsNumber of pounds to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double kg = Masses.PoundsToKilograms(10);
 // kg = 4.535923703803784

KilogramsToPounds(kilograms)

Definition

Converts kilograms to pounds. Returns a double value.

Arguments

TypeNameMeaning
doublekilogramsNumber of kilograms to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double pounds = Masses.KilogramsToPounds(25);
-// pounds = 55.115565499999995

Released under the MIT License.

- +// pounds = 55.115565499999995

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/speeds.html b/docs/core/converters/speeds.html index cdccc35b..1659368f 100644 --- a/docs/core/converters/speeds.html +++ b/docs/core/converters/speeds.html @@ -5,17 +5,18 @@ Speeds | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Speeds

This page is about the Speeds class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Speeds class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

KnotsToKilometersPerHour(knots)

Definition

Converts knots to kilometers per hour.

Arguments

TypeNameMeaning
doubleknotsThe speed in knots.

Returns

The equivalent speed in kilometers per hour.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Speeds

This page is about the Speeds class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Speeds class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

KnotsToKilometersPerHour(knots)

Definition

Converts knots to kilometers per hour.

Arguments

TypeNameMeaning
doubleknotsThe speed in knots.

Returns

The equivalent speed in kilometers per hour.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double speedInKnots = 20.0;
 double speedInKilometersPerHour = Speeds.KnotsToKilometersPerHour(speedInKnots);
@@ -53,9 +54,8 @@
 // kmPerHour = 1234.8

MachToMilesPerHour(mach)

Definition

Converts a speed in mach to miles per hour. Returns a double value.

Arguments

TypeNameMeaning
doublemachThe speed in mach.

Returns

A double representing the speed in miles per hour.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double mph = Speeds.MachToMilesPerHour(0.8);
-// mph = 613.8153184

Released under the MIT License.

- +// mph = 613.8153184

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/storage.html b/docs/core/converters/storage.html index 1e5136a3..ae786694 100644 --- a/docs/core/converters/storage.html +++ b/docs/core/converters/storage.html @@ -5,17 +5,18 @@ Storage | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Storage

This page is about the Storage class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Storage class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

ToByte(value, storageUnit)

Definition

Converts a size (kb, mb, ...) to byte. Returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doublevalueThe value to convert.
StorageUnitsstorageUnitThe unit of the value. (ex: kilobyte, gigabyte...)

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Storage

This page is about the Storage class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Storage class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

ToByte(value, storageUnit)

Definition

Converts a size (kb, mb, ...) to byte. Returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doublevalueThe value to convert.
StorageUnitsstorageUnitThe unit of the value. (ex: kilobyte, gigabyte...)

Usage

c#
using PeyrSharp.Core.Converters;
 
 double byte = Storage.ToByte(1, StorageUnits.Kilobyte);
 // byte = 1000

ToKilobyte(value, storageUnit)

Definition

Converts a size (kb, mb, ...) to kilobyte. Returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doublevalueThe value to convert.
StorageUnitsstorageUnitThe unit of the value. (ex: byte, gigabyte...)

Usage

c#
using PeyrSharp.Core.Converters;
@@ -39,9 +40,8 @@
 // bytes = 8

BytesToBits(n)

Definition

Converts a number of bytes to a number of bits. Returns a double value.

Arguments

TypeNameMeaning
doublenThe number of bytes to convert to bits.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double bits = Storage.BytesToBits(1024);
-// bits = 8192

Released under the MIT License.

- +// bits = 8192

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/temperatures.html b/docs/core/converters/temperatures.html index 249d0425..6257579a 100644 --- a/docs/core/converters/temperatures.html +++ b/docs/core/converters/temperatures.html @@ -5,25 +5,25 @@ Temperatures | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Temperatures

This page is about the Temperatures class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Temperatures class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

CelsiusToFahrenheit(celsius)

Definition

Converts Celsius (°C) to Fahrenheit (°F). Returns a double value.

Arguments

TypeNameMeaning
doublecelsiusNumber of Celsius to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Temperatures

This page is about the Temperatures class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Temperatures class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

CelsiusToFahrenheit(celsius)

Definition

Converts Celsius (°C) to Fahrenheit (°F). Returns a double value.

Arguments

TypeNameMeaning
doublecelsiusNumber of Celsius to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double f = Temperatures.CelsiusToFahrenheit(22);
 // f = 71.6

FahrenheitToCelsius(fahrenheit)

Definition

Converts Fahrenheit (°F) to Celsius (°C). Returns a double value.

Arguments

TypeNameMeaning
doublefahrenheitNumber of Fahrenheit to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double c = Temperatures.FahrenheitToCelsius(75);
-// c = 23.88888888888889

Released under the MIT License.

- +// c = 23.88888888888889

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/time.html b/docs/core/converters/time.html index 1395572f..0f5cf744 100644 --- a/docs/core/converters/time.html +++ b/docs/core/converters/time.html @@ -5,17 +5,18 @@ Time | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Time

This page is about the Time class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Time class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

ToSeconds(d, timeUnits)

Definition

Converts a specified time unit value to seconds. For instance, you can convert days, hours or minutes to seconds. It returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doubledThe time unit to convert.
TimeUnitstimeUnitsThe unit of the time. (ex: minutes, hours...)

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Time

This page is about the Time class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Time class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

ToSeconds(d, timeUnits)

Definition

Converts a specified time unit value to seconds. For instance, you can convert days, hours or minutes to seconds. It returns a double value.

INFO

This method can also be used in PeyrSharp.Extensions.

Arguments

TypeNameMeaning
doubledThe time unit to convert.
TimeUnitstimeUnitsThe unit of the time. (ex: minutes, hours...)

Usage

c#
using PeyrSharp.Core.Converters;
 using PeyrSharp.Enums;
 
 double seconds = Time.ToSeconds(5, TimeUnits.Minutes);
@@ -36,9 +37,8 @@
 var date = Time.UnixTimeToDateTime(1670144268); // 12/04/2022 08:57:48

DateTimeToUnixTime(dateTime)

Available in version 1.1 and higher.

Definition

Converts DateTime to Unix Time. It returns an int value.

Arguments

TypeNameMeaning
DateTimedateTimeThe converted DateTime in Unix Time.

Usage

c#
using PeyrSharp.Core.Converters;
 
 int unix = Time.DateTimeToUnixTime(new(2022, 12, 4, 8, 57, 48, DateTimeKind.Utc)); 
-// unix = 1670144268

Released under the MIT License.

- +// unix = 1670144268

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/converters/volumes.html b/docs/core/converters/volumes.html index 69225599..09704893 100644 --- a/docs/core/converters/volumes.html +++ b/docs/core/converters/volumes.html @@ -5,25 +5,25 @@ Volumes | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Volumes

This page is about the Volumes class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Volumes class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

M3ToLitre(m3)

Definition

Converts Cubic Meters (m³) to Litre (L). Returns a double value.

Arguments

TypeNameMeaning
doublem3Number of cubic meters to convert.

Usage

c#
using PeyrSharp.Core.Converters;
+    
Skip to content
On this page

Volumes

This page is about the Volumes class available in PeyrSharp.Core.Converters. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Volumes class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

M3ToLitre(m3)

Definition

Converts Cubic Meters (m³) to Litre (L). Returns a double value.

Arguments

TypeNameMeaning
doublem3Number of cubic meters to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double litre = Volumes.M3ToLitre(10);
 // litre = 10000

LitreToM3(m3)

Definition

Converts Litre (L) to Cubic Meters (m³). Returns a double value.

Arguments

TypeNameMeaning
doublelitreNumber of litres to convert.

Usage

c#
using PeyrSharp.Core.Converters;
 
 double m3 = Volumes.LitreToM3(500);
-// m3 = 0.5

Released under the MIT License.

- +// m3 = 0.5

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/crypt.html b/docs/core/crypt.html index baac5ca6..563d2885 100644 --- a/docs/core/crypt.html +++ b/docs/core/crypt.html @@ -5,17 +5,18 @@ Crypt | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Crypt

This page is about the Crypt class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Crypt class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

EncryptAes(str, key)

Definitions

Encrypts a string using AES encryption. Returns the encrypted content as a string as well.

Arguments

TypeNameMeaning
stringstrThe text to encrypt.
stringkeyThe encryption key. This is the same key that will be used to decrypt the text.

Usage

c#
using PeyrSharp.Core;
+    
Skip to content
On this page

Crypt

This page is about the Crypt class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Crypt class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

EncryptAes(str, key)

Definitions

Encrypts a string using AES encryption. Returns the encrypted content as a string as well.

Arguments

TypeNameMeaning
stringstrThe text to encrypt.
stringkeyThe encryption key. This is the same key that will be used to decrypt the text.

Usage

c#
using PeyrSharp.Core;
 
 string text = "Hello, world!";
 string encrypted = Crypt.EncryptAes(text, "password");
@@ -47,9 +48,8 @@
 
 string encrypted = "AvuLd4LUxRU=";
 string text = Crypt.Decrypt3Des(encrypted, "123");
-// text = Hello

Released under the MIT License.

- +// text = Hello

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/guid-options.html b/docs/core/guid-options.html index 905e09cb..dc9dbae7 100644 --- a/docs/core/guid-options.html +++ b/docs/core/guid-options.html @@ -5,17 +5,18 @@ GuidOptions | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

GuidOptions

This page is about the GuidOptions class available in PeyrSharp.Core. You can find here all of its properties.

Compatibility

The GuidOptions class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

GuidOptions()

Definition

Initializes GuidOptions with default values for its properties.

Usage

c#
using PeyrSharp.Core;
+    
Skip to content
On this page

GuidOptions

This page is about the GuidOptions class available in PeyrSharp.Core. You can find here all of its properties.

Compatibility

The GuidOptions class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

GuidOptions()

Definition

Initializes GuidOptions with default values for its properties.

Usage

c#
using PeyrSharp.Core;
 
 var options = new GuidOptions();
 /*
@@ -33,9 +34,8 @@
         - Hyphens = true
         - Braces = true
         - UpperCaseOnly = true
-*/

Properties

Length

Definition

c#
public int Length { get; set; }

The Length property is an int representing the length of the Guid that will be generated if used with GuidGen.Generate().

INFO

This property can be initialized when using the GuidOptions(length, hyphens, braces, upperCaseOnly) constructor.

You can get and set this property after initializing the class.

Hyphens

Definition

c#
public bool Hyphens { get; set; }

The Hyphens property is a bool, which will determine if you want hyphens in the Guid that will be generated if used with GuidGen.Generate().

INFO

This property can be initialized when using the GuidOptions(length, hyphens, braces, upperCaseOnly) constructor.

You can get and set this property after initializing the class.

Braces

Definition

c#
public bool Braces { get; set; }

The Braces property is a bool, which will determine if you want braces in the Guid that will be generated if used with GuidGen.Generate().

INFO

This property can be initialized when using the GuidOptions(length, hyphens, braces, upperCaseOnly) constructor.

You can get and set this property after initializing the class.

UpperCaseOnly

Definition

c#
public bool UpperCaseOnly { get; set; }

The UpperCaseOnly property is a bool, which will determine if you want to only have upper cases in the Guid that will be generated if used with GuidGen.Generate().

INFO

This property can be initialized when using the GuidOptions(length, hyphens, braces, upperCaseOnly) constructor.

You can get and set this property after initializing the class.

Released under the MIT License.

- +*/

Properties

Length

Definition

c#
public int Length { get; set; }

The Length property is an int representing the length of the Guid that will be generated if used with GuidGen.Generate().

INFO

This property can be initialized when using the GuidOptions(length, hyphens, braces, upperCaseOnly) constructor.

You can get and set this property after initializing the class.

Hyphens

Definition

c#
public bool Hyphens { get; set; }

The Hyphens property is a bool, which will determine if you want hyphens in the Guid that will be generated if used with GuidGen.Generate().

INFO

This property can be initialized when using the GuidOptions(length, hyphens, braces, upperCaseOnly) constructor.

You can get and set this property after initializing the class.

Braces

Definition

c#
public bool Braces { get; set; }

The Braces property is a bool, which will determine if you want braces in the Guid that will be generated if used with GuidGen.Generate().

INFO

This property can be initialized when using the GuidOptions(length, hyphens, braces, upperCaseOnly) constructor.

You can get and set this property after initializing the class.

UpperCaseOnly

Definition

c#
public bool UpperCaseOnly { get; set; }

The UpperCaseOnly property is a bool, which will determine if you want to only have upper cases in the Guid that will be generated if used with GuidGen.Generate().

INFO

This property can be initialized when using the GuidOptions(length, hyphens, braces, upperCaseOnly) constructor.

You can get and set this property after initializing the class.

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/guid.html b/docs/core/guid.html index 6382311f..ea2c7a72 100644 --- a/docs/core/guid.html +++ b/docs/core/guid.html @@ -5,17 +5,18 @@ GuidGen | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

GuidGen

This page is about the GuidGen class available in PeyrSharp.Core. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The GuidGen class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Generate()

Definition

The Generate() method generates a Guid and will return it as a string.

INFO

This method has different overloads.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Core;
+    
Skip to content
On this page

GuidGen

This page is about the GuidGen class available in PeyrSharp.Core. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The GuidGen class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Generate()

Definition

The Generate() method generates a Guid and will return it as a string.

INFO

This method has different overloads.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Core;
 
 string guid = GuidGen.Generate();
 // guid = 7992acdd-1c9a-4985-92df-04599d560bbc (example)

Generate(length)

Definition

The Generate() method generates a Guid with a specific length and will return it as a string.

INFO

This method is an overload of Generate()

Arguments

This method has one argument:

TypeNameMeaning
intlengthThe length of the Guid.

WARNING

The length must be a number, otherwise, it will thrown a InvalidGuidLengthException.

Usage

c#
using PeyrSharp.Core;
@@ -27,9 +28,8 @@
 // guid = 53991a8b-61c4-9612-a827-abf8c47804d7

Generate(guidOptions)

Definition

The Generate() method generates a Guid with specific GuidOptions and will return it as a string.

INFO

This method is an overload of Generate()

Arguments

This method has one argument:

TypeNameMeaning
GuidOptionsguidOptionsThe options of the Guid to generate.

Usage

c#
using PeyrSharp.Core;
 
 string guid = Guid.Generate(new GuidOptions(32, true, true, false));
-// guid = {35c3ab90-7636-4d34-a439-bc65eb3c} (example)

Released under the MIT License.

- +// guid = {35c3ab90-7636-4d34-a439-bc65eb3c} (example)

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/internet.html b/docs/core/internet.html index 332384b3..7095a185 100644 --- a/docs/core/internet.html +++ b/docs/core/internet.html @@ -5,17 +5,18 @@ Internet | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Internet

This page is about the Internet class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Internet class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

IsAvailableAsync()

Definition

Checks if a connection to the Internet is available. Returns a bool value.

INFO

This method is asynchronous and awaitable.

Arguments

This method has no arguments

Usage

c#
using PeyrSharp.Core;
+    
Skip to content
On this page

Internet

This page is about the Internet class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Internet class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

IsAvailableAsync()

Definition

Checks if a connection to the Internet is available. Returns a bool value.

INFO

This method is asynchronous and awaitable.

Arguments

This method has no arguments

Usage

c#
using PeyrSharp.Core;
 
 public static async void Main()
 {
@@ -69,9 +70,8 @@
 // protocol = https

IsUrlValid(url)

Definition

Checks if a URL is valid or not.. Returns a bool.

Arguments

TypeNameMeaning
stringurlThe URL where to check.

INFO

If you haven't specified the protocol in the URL (ex: "https://"), the "https://" string will automatically be appended to the original URL. To avoid this behavior, please specify a full URL to preserve the original protocol.

Usage

c#
using PeyrSharp.Core;
 
 bool valid = Internet.GetUrlProtocol("a/test");
-// valid = false

Released under the MIT License.

- +// valid = false

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/json-helper.html b/docs/core/json-helper.html new file mode 100644 index 00000000..c420ad5e --- /dev/null +++ b/docs/core/json-helper.html @@ -0,0 +1,48 @@ + + + + + + JsonHelper | PeyrSharp + + + + + + + + + + + + +
Skip to content
On this page

JsonHelper

This page is about the JsonHelper class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The JsonHelper class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

LoadFromJson<T>(fileName)

Definition

The LoadFromJson<T>() method loads an object from a JSON file.

Type Parameters

TypeMeaning
TThe type of the object to save.

Arguments

TypeNameMeaning
stringfileNameThe name of the file to load from.

Returns

The object loaded from the file.

Usage

c#
using PeyrSharp.Core;
+using System.IO;
+using System.Text.Json;
+
+// Load the person from the JSON file
+Person person = JsonHelper.LoadFromJson<Person>("person.json");
+
+// Print the person's name and age
+Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");

SaveAsJson<T>(obj, fileName)

Definition

The SaveAsJson() method saves an object as a JSON file.

Type Parameters

TypeMeaning
TThe type of the object to save.

Arguments

TypeNameMeaning
TobjThe object to save.
stringfileNameThe name of the file to save to.

Usage

c#
using PeyrSharp.Core;
+using System.IO;
+using System.Text.Json;
+
+public static void Main()
+{
+    // Create an object to save
+    MyObject obj = new MyObject();
+
+    // Save the object as a JSON file
+    JsonHelper.SaveAsJson(obj, "output.json");
+}
+
+public class MyObject
+{
+    public string Name { get; set; }
+    public int Age { get; set; }
+}

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/core/maths.html b/docs/core/maths.html index a9e4ff1a..97b6071f 100644 --- a/docs/core/maths.html +++ b/docs/core/maths.html @@ -5,19 +5,19 @@ Maths | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Maths

This page is about the Maths namespace available in PeyrSharp.Core. You can find here all of its classes.

Compatibility

The Maths namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

Released under the MIT License.

- +
Skip to content
On this page

Maths

This page is about the Maths namespace available in PeyrSharp.Core. You can find here all of its classes.

Compatibility

The Maths namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/algebra.html b/docs/core/maths/algebra.html index 7988639c..7ea8b5be 100644 --- a/docs/core/maths/algebra.html +++ b/docs/core/maths/algebra.html @@ -5,17 +5,18 @@ Algebra | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Algebra

This page is about the Algebra class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Algebra class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Sum(numbers) (double)

Definition

Returns the sum of specified double numbers. It returns a double value.

Arguments

TypeNameMeaning
params double[]numbersThe numbers to do the sum of.

Usage

c#
using PeyrSharp.Core.Maths;
+    
Skip to content
On this page

Algebra

This page is about the Algebra class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Algebra class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Sum(numbers) (double)

Definition

Returns the sum of specified double numbers. It returns a double value.

Arguments

TypeNameMeaning
params double[]numbersThe numbers to do the sum of.

Usage

c#
using PeyrSharp.Core.Maths;
 
 // Usage 1
 double sum = Algebra.Sum(12, 1.5, 45, 2.2);
@@ -53,9 +54,8 @@
 // negative = -7

GetResultsOf(function, numbers)

Definition

Gets the results of a function applied to specific double numbers. It returns an array of double[].

Arguments

TypeNameMeaning
Func<double, double>functionThe function to apply to all numbers. It must return a double and take a double as an argument.
params double[]numbersThe numbers to get the results of.

Usage

c#
using PeyrSharp.Core.Maths;
 
 double res = Algebra.GetResultsOf(x => x * x, 1, 2, 3, 4);
-// res = double[] { 1, 4, 9, 16 }

Released under the MIT License.

- +// res = double[] { 1, 4, 9, 16 }

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry.html b/docs/core/maths/geometry.html index 1e73d909..a62707b1 100644 --- a/docs/core/maths/geometry.html +++ b/docs/core/maths/geometry.html @@ -5,19 +5,19 @@ Geometry | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Geometry

This page is about the Geometry namespace available in PeyrSharp.Core.Maths. This namespace includes several classes to get and calculates various aspects of different shapes, like the area, perimeter, volume and more.

Compatibility

The namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

Released under the MIT License.

- +
Skip to content
On this page

Geometry

This page is about the Geometry namespace available in PeyrSharp.Core.Maths. This namespace includes several classes to get and calculates various aspects of different shapes, like the area, perimeter, volume and more.

Compatibility

The namespace is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Classes

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/circle.html b/docs/core/maths/geometry/circle.html index 4991ce6e..b87eb870 100644 --- a/docs/core/maths/geometry/circle.html +++ b/docs/core/maths/geometry/circle.html @@ -5,17 +5,18 @@ Circle | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Circle

This page is about the Circle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Circle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Circle(radius)

Definition

Initializes a Circle class from a specific radius.

Arguments

TypeNameMeaning
doubleradiusThe radius of the circle.

WARNING

If radius ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Circle

This page is about the Circle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Circle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Circle(radius)

Definition

Initializes a Circle class from a specific radius.

Arguments

TypeNameMeaning
doubleradiusThe radius of the circle.

WARNING

If radius ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Circle circle = new(10); // Creates a circle with a radius of 10

Properties

Area

Definition

c#
public double Area { get; }

The Area property is a double which returns the area of the circle. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -27,9 +28,8 @@
 Circle circle = new(10);
 
 var perimeter = circle.Perimeter;
-// perimeter = 62.83185307179586

Released under the MIT License.

- +// perimeter = 62.83185307179586

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/cone.html b/docs/core/maths/geometry/cone.html index 49880042..cdaf3d43 100644 --- a/docs/core/maths/geometry/cone.html +++ b/docs/core/maths/geometry/cone.html @@ -5,17 +5,18 @@ Cone | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Cone

This page is about the Cone class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cone class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cone(radius, height)

Definition

Initializes a Cone class from a specific radius and height.

Arguments

TypeNameMeaning
doubleradiusThe radius of the cone.
doubleheightThe height of the cone.

WARNING

If radius or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Cone

This page is about the Cone class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cone class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cone(radius, height)

Definition

Initializes a Cone class from a specific radius and height.

Arguments

TypeNameMeaning
doubleradiusThe radius of the cone.
doubleheightThe height of the cone.

WARNING

If radius or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Cone cone = new(10, 20); // Creates a cone with a radius of 10, and a height of 20

Properties

Volume

Definition

c#
public double Volume { get; }

The Volume property is a double which returns the volume of the cone. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -32,9 +33,8 @@
 Circle cone = new(10, 40);
 
 var height = cone.Height;
-// height = 40

Released under the MIT License.

- +// height = 40

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/cube.html b/docs/core/maths/geometry/cube.html index 1cf54ff3..ee0feeb8 100644 --- a/docs/core/maths/geometry/cube.html +++ b/docs/core/maths/geometry/cube.html @@ -5,17 +5,18 @@ Cube | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Cube

This page is about the Cube class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cube class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cube(side)

Definition

Initializes a Cube class from the length of the side of the cube.

Arguments

TypeNameMeaning
doublesideThe length of the side of the cube.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Cube

This page is about the Cube class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cube class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cube(side)

Definition

Initializes a Cube class from the length of the side of the cube.

Arguments

TypeNameMeaning
doublesideThe length of the side of the cube.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Cube cube = new(10); // Creates a 10x10x10 cube

Cube(width, length, height)

Definition

Initializes a Cube class from the width, the length and the height of the cuboidal.

Arguments

TypeNameMeaning
doublewidthThe width of the cuboidal.
doublelengthThe length of the cuboidal.
doubleheightThe height of the cuboidal.

WARNING

If width, length or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -54,9 +55,8 @@
 Cube cube = new(10);
 
 var width = cube.Width;
-// width = 10

Released under the MIT License.

- +// width = 10

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/cylinder.html b/docs/core/maths/geometry/cylinder.html index 85facf67..608d70e2 100644 --- a/docs/core/maths/geometry/cylinder.html +++ b/docs/core/maths/geometry/cylinder.html @@ -5,17 +5,18 @@ Cylinder | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Cylinder

This page is about the Cylinder class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cylinder class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cylinder(radius, height)

Definition

Initializes a Cylinder class from a specific radius and height.

Arguments

TypeNameMeaning
doubleradiusThe radius of the cylinder.
doubleheightThe height of the cylinder.

WARNING

If radius or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Cylinder

This page is about the Cylinder class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Cylinder class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Cylinder(radius, height)

Definition

Initializes a Cylinder class from a specific radius and height.

Arguments

TypeNameMeaning
doubleradiusThe radius of the cylinder.
doubleheightThe height of the cylinder.

WARNING

If radius or height ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Cylinder cylinder = new(20, 10); // Creates a cylinder with a radius of 20, and a height of 10

Properties

Volume

Definition

c#
public double Volume { get; }

The Volume property is a double which returns the volume of the cylinder. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -37,9 +38,8 @@
 Cylinder cylinder = new(10, 40);
 
 var height = cylinder.Height;
-// height = 40

Released under the MIT License.

- +// height = 40

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/diamond.html b/docs/core/maths/geometry/diamond.html index 5c00ec8e..29e0cda0 100644 --- a/docs/core/maths/geometry/diamond.html +++ b/docs/core/maths/geometry/diamond.html @@ -5,17 +5,18 @@ Diamond | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Diamond

This page is about the Diamond class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Diamond class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Diamond(side)

Definition

Initializes a Diamond class from the length of its side.

Arguments

TypeNameMeaning
doublesideThe length of the side.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Diamond

This page is about the Diamond class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Diamond class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Diamond(side)

Definition

Initializes a Diamond class from the length of its side.

Arguments

TypeNameMeaning
doublesideThe length of the side.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Diamond diamond = new(5); // Creates a diamond where all the sides equals to 5.

Diamond(diagonal1, diagonal2)

Definition

Initializes a Diamond class from the length of its diagonals.

Arguments

TypeNameMeaning
doublediagonal1The length of the first diagonal.
doublediagonal2The side of the second diagonal.

WARNING

If diagonal1 or diagonal2 ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -40,9 +41,8 @@
 Diamond diamond = new(10, 14);
 
 var side = diamond.Diagonals;
-// side = { 10, 14 }

Released under the MIT License.

- +// side = { 10, 14 }

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/hexagon.html b/docs/core/maths/geometry/hexagon.html index 4fdf3fcf..0dc6bc7c 100644 --- a/docs/core/maths/geometry/hexagon.html +++ b/docs/core/maths/geometry/hexagon.html @@ -5,17 +5,18 @@ Hexagon | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Hexagon

This page is about the Hexagon class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Hexagon class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Hexagon(side)

Definition

Initializes a Hexagon class from the length of its side.

Arguments

TypeNameMeaning
doublesideThe length of the side of the hexagon.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Hexagon

This page is about the Hexagon class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Hexagon class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Hexagon(side)

Definition

Initializes a Hexagon class from the length of its side.

Arguments

TypeNameMeaning
doublesideThe length of the side of the hexagon.

WARNING

If side ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Hexagon hexagon = new(12); // Creates a hexagon with a length of 12

Properties

Area

Definition

c#
public double Area { get; }

The Area property is a double which returns the area of the hexagon. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -31,9 +32,8 @@
 
 Hexagon hexagon = new(10);
 
-var side = hexagon.Side; // side = 10

Released under the MIT License.

- +var side = hexagon.Side; // side = 10

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/pyramid.html b/docs/core/maths/geometry/pyramid.html index 007e643d..a2bc58af 100644 --- a/docs/core/maths/geometry/pyramid.html +++ b/docs/core/maths/geometry/pyramid.html @@ -5,17 +5,18 @@ Pyramid | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Pyramid

This page is about the Pyramid class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors, methods and properties.

Compatibility

The Pyramid class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Pyramid(width, length, height)

Definition

Initializes a Pyramid class from a specific width, length, and height.

Arguments

TypeNameMeaning
doublewidthThe width of the pyramid.
doublelengthThe length of the pyramid.
doubleheightThe height of the pyramid.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Pyramid

This page is about the Pyramid class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors, methods and properties.

Compatibility

The Pyramid class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Pyramid(width, length, height)

Definition

Initializes a Pyramid class from a specific width, length, and height.

Arguments

TypeNameMeaning
doublewidthThe width of the pyramid.
doublelengthThe length of the pyramid.
doubleheightThe height of the pyramid.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Pyramid pyramid = new(12, 10, 15); // Creates a pyramid with a width of 12, a length of 10, and a height of 15

Methods

FromVolumeAndSize(volume, width, length)

Definition

Initializes a Pyramid class from a specific volume, width, and length.

Arguments

TypeNameMeaning
doublevolumeThe volume of the pyramid.
doublewidthThe width of the pyramid.
doublelengthThe length of the pyramid.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -58,9 +59,8 @@
 Pyramid pyramid = new(10, 20, 30);
 
 var height = pyramid.Height;
-// height = 30

Released under the MIT License.

- +// height = 30

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/rectangle.html b/docs/core/maths/geometry/rectangle.html index 332c52bc..9a3d4bb2 100644 --- a/docs/core/maths/geometry/rectangle.html +++ b/docs/core/maths/geometry/rectangle.html @@ -5,17 +5,18 @@ Rectangle | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Rectangle

This page is about the Rectangle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Rectangle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Rectangle(width, length)

Definition

Initializes a Rectangle class from a specific length and width.

Arguments

TypeNameMeaning
doublewidthThe width of the rectangle.
doublelengthThe length of the rectangle.

WARNING

If width or length ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Rectangle

This page is about the Rectangle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Rectangle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Rectangle(width, length)

Definition

Initializes a Rectangle class from a specific length and width.

Arguments

TypeNameMeaning
doublewidthThe width of the rectangle.
doublelengthThe length of the rectangle.

WARNING

If width or length ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Rectangle rectangle = new(10, 20); // Creates a 10x20 rectangle

Properties

Area

Definition

c#
public double Area { get; }

The Area property is a double which returns the area of the rectangle. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -42,9 +43,8 @@
 Rectangle rectangle = new(10, 20);
 
 var length = rectangle.Length;
-// length = 20

Released under the MIT License.

- +// length = 20

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/sphere.html b/docs/core/maths/geometry/sphere.html index 25103178..e87745f3 100644 --- a/docs/core/maths/geometry/sphere.html +++ b/docs/core/maths/geometry/sphere.html @@ -5,17 +5,18 @@ Sphere | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Sphere

This page is about the Sphere class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Sphere class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Sphere(radius)

Definition

Initializes a Sphere class from a specific radius.

Arguments

TypeNameMeaning
doubleradiusThe radius of the sphere.

WARNING

If radius ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Sphere

This page is about the Sphere class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Sphere class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Sphere(radius)

Definition

Initializes a Sphere class from a specific radius.

Arguments

TypeNameMeaning
doubleradiusThe radius of the sphere.

WARNING

If radius ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Sphere sphere = new(10); // Creates a sphere with a radius of 10

Properties

Area

Definition

c#
public double Area { get; }

The Area property is a double which returns the area of the sphere. You can only get this property.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -32,9 +33,8 @@
 Sphere sphere = new(10);
 
 var radius = sphere.Radius;
-// radius = 10

Released under the MIT License.

- +// radius = 10

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/geometry/triangle.html b/docs/core/maths/geometry/triangle.html index 607f47f3..0779b387 100644 --- a/docs/core/maths/geometry/triangle.html +++ b/docs/core/maths/geometry/triangle.html @@ -5,17 +5,18 @@ Triangle | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Triangle

This page is about the Triangle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Triangle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Triangle(side1, side2, side3)

Definition

Initializes a Triangle class from the length of its sides.

Arguments

TypeNameMeaning
doubleside1The length of the first side of the triangle.
doubleside2The length of the second side of the triangle.
doubleside3The length of the third side of the triangle.

WARNING

If side1, side2, or side3 ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
+    
Skip to content
On this page

Triangle

This page is about the Triangle class available in PeyrSharp.Core.Maths.Geometry. You can find here all of its constructors and properties.

Compatibility

The Triangle class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Constructors

Triangle(side1, side2, side3)

Definition

Initializes a Triangle class from the length of its sides.

Arguments

TypeNameMeaning
doubleside1The length of the first side of the triangle.
doubleside2The length of the second side of the triangle.
doubleside3The length of the third side of the triangle.

WARNING

If side1, side2, or side3 ≤ 0, a DivideByZeroException will be thrown.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
 Triangle triangle = new(10, 20, 10); // Creates a triangle

Triangle(width, height)

Definition

Initializes a Triangle class from a width and height.

Arguments

TypeNameMeaning
doublewidthThe width of the triangle.
doubleheightThe height of the triangle.

Usage

c#
using PeyrSharp.Core.Maths.Geometry;
 
@@ -70,9 +71,8 @@
 Triangle triangle = new(10, 20, 15);
 
 var side3 = triangle.Side3;
-// side3 = 15

Released under the MIT License.

- +// side3 = 15

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/percentages.html b/docs/core/maths/percentages.html index 873a5ffe..54df5d6d 100644 --- a/docs/core/maths/percentages.html +++ b/docs/core/maths/percentages.html @@ -5,17 +5,18 @@ Percentages | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Percentages

This page is about the Percentages class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Percentages class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

IncreaseBy(value, increaseRate)

Definition

Returns the value after an increase of x% as a double.

Arguments

TypeNameMeaning
doublevalueThe original value.
doubleincreaseRateThe increase percentage (as x/100d).

Usage

c#
using PeyrSharp.Core.Maths;
+    
Skip to content
On this page

Percentages

This page is about the Percentages class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Percentages class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

IncreaseBy(value, increaseRate)

Definition

Returns the value after an increase of x% as a double.

Arguments

TypeNameMeaning
doublevalueThe original value.
doubleincreaseRateThe increase percentage (as x/100d).

Usage

c#
using PeyrSharp.Core.Maths;
 
 double price = Percentages.IncreaseBy(100, 10/100d); // Increase the price by 10%
 // price = 110

DecreaseBy(value, decreaseRate)

Definition

Returns the value after a decrease of x% as a double.

Arguments

TypeNameMeaning
doublevalueThe original value.
doubledecreaseRateThe decrease percentage (as x/100d).

Usage

c#
using PeyrSharp.Core.Maths;
@@ -27,9 +28,8 @@
 // ev = -0.09090909090909094

ProportionToPercentageString(proportion)

Definition

Formats a proportion to a string.

Arguments

TypeNameMeaning
doubleproportionThe proportion to get the percentage of.

Usage

c#
using PeyrSharp.Core.Maths;
 
 double proportion = Percentages.ProportionToPercentageString(0.5);
-// proportion = 50%

Released under the MIT License.

- +// proportion = 50%

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/proba.html b/docs/core/maths/proba.html index 0802313d..107da3a8 100644 --- a/docs/core/maths/proba.html +++ b/docs/core/maths/proba.html @@ -5,17 +5,18 @@ Proba | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Proba

This page is about the Proba class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Proba class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GetRandomValue(probabilities)

Definition

Gets a random value based on the specified probabilities. Returns a randomly selected value.

Type parameters

TypeNameMeaning
T-The type of the values to select from.

Parameters

TypeNameMeaning
Dictionary<T, double>probabilitiesA dictionary containing the probability of getting each value.

Exceptions

  • ArgumentException: Thrown if the sum of probabilities is not equal to 1.
  • Exception: Thrown if an unexpected error occurs while selecting a random value.

Usage

c#
using PeyrSharp.Core.Maths;
+    
Skip to content
On this page

Proba

This page is about the Proba class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Proba class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GetRandomValue(probabilities)

Definition

Gets a random value based on the specified probabilities. Returns a randomly selected value.

Type parameters

TypeNameMeaning
T-The type of the values to select from.

Parameters

TypeNameMeaning
Dictionary<T, double>probabilitiesA dictionary containing the probability of getting each value.

Exceptions

  • ArgumentException: Thrown if the sum of probabilities is not equal to 1.
  • Exception: Thrown if an unexpected error occurs while selecting a random value.

Usage

c#
using PeyrSharp.Core.Maths;
 
 Dictionary<string, double> probabilities = new Dictionary<string, double>
 {
@@ -23,9 +24,8 @@
     { "Tails", 0.5 }
 };
 
-string result = Proba.GetRandomValue(probabilities);

Released under the MIT License.

- +string result = Proba.GetRandomValue(probabilities);

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/stats.html b/docs/core/maths/stats.html index d47afb3e..83da97d7 100644 --- a/docs/core/maths/stats.html +++ b/docs/core/maths/stats.html @@ -5,17 +5,18 @@ Stats | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Stats

This page is about the Stats class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Stats class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Mean(values)

Definition

Returns the mean of a dataset as a double.

Arguments

TypeNameMeaning
List<double>valuesThe dataset to calculate.

Exceptions

TypeMeaning
ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Core.Maths;
+    
Skip to content
On this page

Stats

This page is about the Stats class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Stats class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

Mean(values)

Definition

Returns the mean of a dataset as a double.

Arguments

TypeNameMeaning
List<double>valuesThe dataset to calculate.

Exceptions

TypeMeaning
ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Core.Maths;
 
 List<double> dataset = new List<double> { 1, 2, 3, 4, 5 };
 double mean = Stats.Mean(dataset); // Calculate the mean of the dataset
@@ -39,9 +40,8 @@
 
 List<double> dataset = new List<double> { 1, 2, 3, 4, 5 };
 double sd = Stats.StandardDeviation(dataset); // Calculate the standard deviation of the dataset
-// sd = 1.5811388300841898

Released under the MIT License.

- +// sd = 1.5811388300841898

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/maths/trigonometry.html b/docs/core/maths/trigonometry.html index 0d698397..b4c1f4f3 100644 --- a/docs/core/maths/trigonometry.html +++ b/docs/core/maths/trigonometry.html @@ -5,17 +5,18 @@ Trigonometry | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Trigonometry

This page is about the Trigonometry class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Trigonometry class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GetOpposedSideFrom(triangleSide, angle, value)

Definition

Gets the length of the opposed side of a specific angle, from the length of either the hypotenuse or the adjacent side of the angle.

Arguments

TypeNameMeaning
TriangleSidestriangleSideThe side of the triangle.
doubleangleThe value of the angle.
doublevalueThe length of the chosen side.

WARNING

If triangleSide is equal to TriangleSides.Opposed, an Exception will be thrown.

Usage

c#
using PeyrSharp.Core.Maths;
+    
Skip to content
On this page

Trigonometry

This page is about the Trigonometry class available in PeyrSharp.Core.Maths. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Trigonometry class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GetOpposedSideFrom(triangleSide, angle, value)

Definition

Gets the length of the opposed side of a specific angle, from the length of either the hypotenuse or the adjacent side of the angle.

Arguments

TypeNameMeaning
TriangleSidestriangleSideThe side of the triangle.
doubleangleThe value of the angle.
doublevalueThe length of the chosen side.

WARNING

If triangleSide is equal to TriangleSides.Opposed, an Exception will be thrown.

Usage

c#
using PeyrSharp.Core.Maths;
 using PeyrSharp.Enums;
 
 double opposed = Trigonometry.GetOpposedSideFrom(TriangleSides.Adjacent, 1.05, 5);
@@ -27,9 +28,8 @@
 using PeyrSharp.Enums;
 
 double hypotenuse = Trigonometry.GetHypotenuseFrom(TriangleSides.Opposed, 1.05, 8.71);
-// hypotenuse = 10.041234478169912

Released under the MIT License.

- +// hypotenuse = 10.041234478169912

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/password.html b/docs/core/password.html index 03e4eb9b..91ea202d 100644 --- a/docs/core/password.html +++ b/docs/core/password.html @@ -5,17 +5,18 @@ Password | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Password

This page is about the Password class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Password class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GenerateAsync(length, chars, separator)

Definition

The GenerateAsync() method generates a password of a specific length, with specific characters asynchronously.

Arguments

TypeNameMeaning
intlengthThe length of the password.
stringcharactersThe characters that can be included in the password. Separated with a unique separator.
stringseparatorThe separator used to separate the specified characters.

Usage

c#
using PeyrSharp.Core;
+    
Skip to content
On this page

Password

This page is about the Password class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Password class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

GenerateAsync(length, chars, separator)

Definition

The GenerateAsync() method generates a password of a specific length, with specific characters asynchronously.

Arguments

TypeNameMeaning
intlengthThe length of the password.
stringcharactersThe characters that can be included in the password. Separated with a unique separator.
stringseparatorThe separator used to separate the specified characters.

Usage

c#
using PeyrSharp.Core;
 
 private async void Main()
 {
@@ -43,9 +44,8 @@
 {
     // Generate 10 passwords with 10 characters with the simple preset
     List<string> passwords = await Password.GenerateAsync(10, 10, PasswordPresets.Simple);
-}

Released under the MIT License.

- +}

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/statusinfo.html b/docs/core/statusinfo.html index b8a7e6e3..e78987b8 100644 --- a/docs/core/statusinfo.html +++ b/docs/core/statusinfo.html @@ -5,19 +5,19 @@ StatusInfo | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

StatusInfo

This page is about the StatusInfo class available in PeyrSharp.Core. You can find here all of its methods.

Compatibility

The StatusInfo class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Properties

StatusCode

Definition

c#
public int StatusCode { get; set; }

Gets or sets the status code that indicates the outcome of the request.

StatusDescription

Definition

c#
public string StatusDescription { get; set; }

Gets or sets the status description that provides a human-readable message of the status code.

StatusType

Definition

c#
public StatusCodes StatusType { get; set; }

Gets or sets the status type that categorizes the status code into informational, success, redirection, client error, or server error. The StatusCodes is an enumeration representing the type of HTTP status codes that can be returned.

Released under the MIT License.

- +
Skip to content
On this page

StatusInfo

This page is about the StatusInfo class available in PeyrSharp.Core. You can find here all of its methods.

Compatibility

The StatusInfo class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Properties

StatusCode

Definition

c#
public int StatusCode { get; set; }

Gets or sets the status code that indicates the outcome of the request.

StatusDescription

Definition

c#
public string StatusDescription { get; set; }

Gets or sets the status description that provides a human-readable message of the status code.

StatusType

Definition

c#
public StatusCodes StatusType { get; set; }

Gets or sets the status type that categorizes the status code into informational, success, redirection, client error, or server error. The StatusCodes is an enumeration representing the type of HTTP status codes that can be returned.

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/core/xml-helper.html b/docs/core/xml-helper.html new file mode 100644 index 00000000..d71dd519 --- /dev/null +++ b/docs/core/xml-helper.html @@ -0,0 +1,75 @@ + + + + + + XmlHelper | PeyrSharp + + + + + + + + + + + + +
Skip to content
On this page

XmlHelper

This page is about the XmlHelper class available in PeyrSharp.Core. You can find here all of its methods.

INFO

This class is static.

Compatibility

The XmlHelper class is part of the PeyrSharp.Core module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Core
Framework.NET 5.NET 6.NET 7
Core

Methods

LoadFromXml<T>(path)

Definition

The LoadFromXml() method loads an object of type T from an XML file at the specified path. If the file does not exist, a new instance of type T will be created and saved to the file using the SaveToXml() method before returning it.

Type Parameters

TypeDescription
TThe type of object to be saved.

Parameters

TypeNameMeaning
stringpathThe path of the XML file to load or create.

Returns

  • The loaded object of type T if the file exists and can be deserialized successfully.
  • A new instance of type T if the file does not exist and can be created and saved successfully.
  • null if an exception occurs during loading or saving.

Exceptions

  • Exception: If an error occurs during the loading or saving process.

Usage

csharp
using PeyrSharp.Core;
+using System;
+using System.IO;
+using System.Xml.Serialization;
+
+private static void Main()
+{
+    string path = "path/to/xml/file.xml";
+
+    // Load an object from the XML file
+    MyObject obj = XmlHelper.LoadFromXml<MyObject>(path);
+
+    if (obj != null)
+    {
+        // Object loaded successfully
+        Console.WriteLine("Object loaded: " + obj.ToString());
+    }
+    else
+    {
+        // Error occurred during loading or saving
+        Console.WriteLine("Failed to load object.");
+    }
+}
+
+// Example class for serialization
+public class MyObject
+{
+    public string Name { get; set; }
+    public int Age { get; set; }
+
+    public override string ToString()
+    {
+        return $"Name: {Name}, Age: {Age}";
+    }
+}

SaveToXml<T>(obj, path)

Definition

The SaveToXml() method saves an object of type T to an XML file at the specified path.

Type Parameters

TypeDescription
TThe type of object to be saved.

Arguments

TypeNameDescription
TobjThe object to be saved.
stringpathThe path of the XML file to save the object.

Returns

  • bool: true if the object is successfully serialized and saved to the file; otherwise, false.

Usage

csharp
using PeyrSharp.Core;
+using System.Xml.Serialization;
+using System.IO;
+
+public class MyClass
+{
+    public int MyProperty { get; set; }
+}
+
+public class Program
+{
+    private static void Main()
+    {
+        MyClass myObject = new MyClass { MyProperty = 123 };
+
+        // Save the object to an XML file
+        bool success = XmlHelper.SaveToXml(myObject, "path/to/file.xml");
+    }
+}

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/enumerations.html b/docs/enumerations.html index eaeaa118..5fbe5486 100644 --- a/docs/enumerations.html +++ b/docs/enumerations.html @@ -5,17 +5,18 @@ Enumerations | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Enumerations

This page is about the enumerations available in PeyrSharp.Enums. They are grouped by category.

Compatibility

Enumerations are part of the PeyrSharp.Enums module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Enums
Framework.NET 5.NET 6.NET 7
Enums

Converters

StorageUnits

Definition

The StorageUnits enumeration represents all possible numeric storage units. It contains the following values:

ValueNameMeaning
0ByteThe byte unit. (b)
1KilobyteThe kilobyte unit. (kb)
2MegabyteThe megabyte unit. (mb)
3GigabyteThe gigabyte unit. (gb)
4TerabyteThe terabyte unit. (tb)
5PetabyteThe petabyte unit. (pb)

Example

c#
public static double ToPetabyte(double value, StorageUnits unit)
+    
Skip to content
On this page

Enumerations

This page is about the enumerations available in PeyrSharp.Enums. They are grouped by category.

Compatibility

Enumerations are part of the PeyrSharp.Enums module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Enums
Framework.NET 5.NET 6.NET 7
Enums

Converters

StorageUnits

Definition

The StorageUnits enumeration represents all possible numeric storage units. It contains the following values:

ValueNameMeaning
0ByteThe byte unit. (b)
1KilobyteThe kilobyte unit. (kb)
2MegabyteThe megabyte unit. (mb)
3GigabyteThe gigabyte unit. (gb)
4TerabyteThe terabyte unit. (tb)
5PetabyteThe petabyte unit. (pb)

Example

c#
public static double ToPetabyte(double value, StorageUnits unit)
 {
     if (unit == StorageUnits.Terabyte)
     {
@@ -82,9 +83,8 @@
             WinFormsHelpers.CenterControl(button1, this, ControlAlignment.Horizontal);
         }
     }
-}

Released under the MIT License.

- +}

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/env.html b/docs/env.html index bf2e9295..318b9412 100644 --- a/docs/env.html +++ b/docs/env.html @@ -5,19 +5,19 @@ Env | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Env

This page is about the PeyrSharp.Env module.

Compatibility

The PeyrSharp.Env module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env⚠️⚠️
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Classes

Released under the MIT License.

- +
Skip to content
On this page

Env

This page is about the PeyrSharp.Env module.

Compatibility

The PeyrSharp.Env module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env⚠️⚠️
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Classes

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/env/filesys.html b/docs/env/filesys.html index 9341a3ab..55ee75e9 100644 --- a/docs/env/filesys.html +++ b/docs/env/filesys.html @@ -5,17 +5,18 @@ FileSys | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

FileSys

This page is about the FileSys class available in PeyrSharp.Env. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The FileSys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

GetAvailableSpace(drive, unit)

Definition

Gets the amount of available storage on a specified drive. It returns double.

Arguments

TypeNameMeaning
stringdriveThe drive letter or name to get the amount of available space.
StorageUnitsunitThe unit of the returned result.

Usage

c#
using PeyrSharp.Enums;
+    
Skip to content
On this page

FileSys

This page is about the FileSys class available in PeyrSharp.Env. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The FileSys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

GetAvailableSpace(drive, unit)

Definition

Gets the amount of available storage on a specified drive. It returns double.

Arguments

TypeNameMeaning
stringdriveThe drive letter or name to get the amount of available space.
StorageUnitsunitThe unit of the returned result.

Usage

c#
using PeyrSharp.Enums;
 using PeyrSharp.Env;
 
 double space = FileSys.GetAvailableSpace("C:/", StorageUnits.Gigabyte);

GetAvailableSpace(driveInfo, unit)

Definition

Gets the amount of available storage on a specified drive. It returns double.

Arguments

TypeNameMeaning
DriveInfodriveInfoThe DriveInfo object to get the amount of available space.
StorageUnitsunitThe unit of the returned result.

Usage

c#
using PeyrSharp.Enums;
@@ -88,9 +89,8 @@
 
 string currentDirectory = FileSys.CurrentDirectory;

ComputerName

Definition

Returns the name of the current computer as a string.

Usage

c#
using PeyrSharp.Env;
 
-string computerName = FileSys.ComputerName;

Released under the MIT License.

- +string computerName = FileSys.ComputerName;

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/env/logger.html b/docs/env/logger.html index 588c15f3..edad1be5 100644 --- a/docs/env/logger.html +++ b/docs/env/logger.html @@ -5,17 +5,18 @@ Logger | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Logger

This page is about the Logger class available in PeyrSharp.Env. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Logger class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

Log(message, filePath, dateTime)

Definition

The Log() method logs a specific message alongside a timestamp into a file. This method does not return a value (void).

INFO

You can call this method multiple times on the same file and it will append the message to it.

Arguments

TypeNameMeaning
stringmessageThe message or text that needs to be logged.
stringfilePathThe path where the file should be written.
DateTimedateTimeThe timestamp of the log, the time when the log was made.

Usage

c#
using PeyrSharp.Env;
+    
Skip to content
On this page

Logger

This page is about the Logger class available in PeyrSharp.Env. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Logger class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

Log(message, filePath, dateTime)

Definition

The Log() method logs a specific message alongside a timestamp into a file. This method does not return a value (void).

INFO

You can call this method multiple times on the same file and it will append the message to it.

Arguments

TypeNameMeaning
stringmessageThe message or text that needs to be logged.
stringfilePathThe path where the file should be written.
DateTimedateTimeThe timestamp of the log, the time when the log was made.

Usage

c#
using PeyrSharp.Env;
 
 Logger.Log("Hello", @"C:\Logs\log1.txt", DateTime.Now)
 // The line above will generate a file with the following content:
@@ -33,9 +34,8 @@
 DateTime date = DateTime.Now;
 LogLevel logLevel = LogLevel.Warning;
 
-Logger.Log(message, filePath, date, logLevel);

Released under the MIT License.

- +Logger.Log(message, filePath, date, logLevel);

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/env/system.html b/docs/env/system.html index b544a6c2..7aa9c910 100644 --- a/docs/env/system.html +++ b/docs/env/system.html @@ -5,17 +5,18 @@ Sys | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Sys

This page is about the Sys class available in PeyrSharp.Env. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The Sys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env⚠️⚠️
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

ExecuteAsAdmin(process)

Definition

Executes a program in administrator mode.

WARNING

This method only works on Windows.

Arguments

TypeNameMeaning
ProcessprocessThe process to launch as admin.

Usage

c#
using PeyrSharp.Env;
+    
Skip to content
On this page

Sys

This page is about the Sys class available in PeyrSharp.Env. You can find here all of its methods and properties.

INFO

This class is static.

Compatibility

The Sys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env⚠️⚠️
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

ExecuteAsAdmin(process)

Definition

Executes a program in administrator mode.

WARNING

This method only works on Windows.

Arguments

TypeNameMeaning
ProcessprocessThe process to launch as admin.

Usage

c#
using PeyrSharp.Env;
 
 // Define a process
 Process p = new();
@@ -84,9 +85,8 @@
     Console.WriteLine(procs[i]); // Print the name of all running processes
 }

UnixTime

Definition

c#
public static int Unix { get; }

Gets the current UnixTime. Returns an int. You can only get this property.

Usage

c#
using PeyrSharp.Env;
 
-int unixTime = Sys.UnixTime;

Released under the MIT License.

- +int unixTime = Sys.UnixTime;

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/env/update.html b/docs/env/update.html index c20e3280..a26cde9e 100644 --- a/docs/env/update.html +++ b/docs/env/update.html @@ -5,17 +5,18 @@ Update | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Update

This page is about the Update class available in PeyrSharp.Env. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Update class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

GetLastVersionAsync(url)

Definition

Downloads the content of remote file as string. The remote file should contain the last version text. Do not provide the URL of an HTML page.

INFO

This method is asynchronous and awaitable.

Arguments

TypeNameMeaning
stringurlLink of the file where the latest version is stored.

Usage

c#
using PeyrSharp.Env;
+    
Skip to content
On this page

Update

This page is about the Update class available in PeyrSharp.Env. You can find here all of its methods.

INFO

This class is static.

Compatibility

The Update class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Methods

GetLastVersionAsync(url)

Definition

Downloads the content of remote file as string. The remote file should contain the last version text. Do not provide the URL of an HTML page.

INFO

This method is asynchronous and awaitable.

Arguments

TypeNameMeaning
stringurlLink of the file where the latest version is stored.

Usage

c#
using PeyrSharp.Env;
 
 private async void Main()
 {
@@ -31,9 +32,8 @@
     Console.WriteLine(Update.IsAvailable(current, last)
         ? "Updates are available."
         : "You are up-to-date.");
-}

Released under the MIT License.

- +}

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/env/uwpapp.html b/docs/env/uwpapp.html index be0cbbab..2dcfa75d 100644 --- a/docs/env/uwpapp.html +++ b/docs/env/uwpapp.html @@ -5,17 +5,18 @@ UwpApp | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

UwpApp

This page is about the UwpApp class available in PeyrSharp.Env. It Represents a simplified version of a UWP app object.

Compatibility

The UwpApp class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Properties

Name

Definition

c#
public static string Name { get; init; }

The name of the UWP app.

Usage

c#
// Create a UwpApp object
+    
Skip to content
On this page

UwpApp

This page is about the UwpApp class available in PeyrSharp.Env. It Represents a simplified version of a UWP app object.

Compatibility

The UwpApp class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Env
Framework.NET 5.NET 6.NET 7
Env

WARNING

Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.

Properties

Name

Definition

c#
public static string Name { get; init; }

The name of the UWP app.

Usage

c#
// Create a UwpApp object
 UwpApp uwpApp = new UwpApp("MyApp", "com.example.myapp");
 
 // Access the properties of the UwpApp object
@@ -23,9 +24,8 @@
 UwpApp uwpApp = new UwpApp("MyApp", "com.example.myapp");
 
 // Access the properties of the UwpApp object
-Console.WriteLine(uwpApp.AppID); // Output: com.example.myapp

Released under the MIT License.

- +Console.WriteLine(uwpApp.AppID); // Output: com.example.myapp

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/exceptions.html b/docs/exceptions.html index fc1df741..3a21c1d0 100644 --- a/docs/exceptions.html +++ b/docs/exceptions.html @@ -5,17 +5,18 @@ Exceptions | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Exceptions

This page is about the exceptions available in PeyrSharp.Exceptions. They are grouped by category.

Compatibility

Exceptions are part of the PeyrSharp.Exceptions module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Exceptions
Framework.NET 5.NET 6.NET 7
Exceptions

Converters

RGBInvalidValueException

Definition

The RGBInvalidValueException is an exception used in the Converters class when you provide an invalid value for a RGB color.

Usage

c#
using PeyrSharp.Exceptions;
+    
Skip to content
On this page

Exceptions

This page is about the exceptions available in PeyrSharp.Exceptions. They are grouped by category.

Compatibility

Exceptions are part of the PeyrSharp.Exceptions module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Exceptions
Framework.NET 5.NET 6.NET 7
Exceptions

Converters

RGBInvalidValueException

Definition

The RGBInvalidValueException is an exception used in the Converters class when you provide an invalid value for a RGB color.

Usage

c#
using PeyrSharp.Exceptions;
 
 throw new RGBInvalidValueException("Please provide correct RGB values.");

HEXInvalidValueException

Definition

The HEXInvalidValueException is an exception used in the Converters class when you provide an invalid value for a HEX color.

Usage

c#
using PeyrSharp.Exceptions;
 
@@ -27,9 +28,8 @@
 if (length <= 0 || length > 32)
 {
     throw new InvalidGuidLengthException("The length of a Guid must be between 1 and 32.");
-}

Released under the MIT License.

- +}

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/extensions.html b/docs/extensions.html index 6088da9c..3cc4bbb3 100644 --- a/docs/extensions.html +++ b/docs/extensions.html @@ -5,19 +5,19 @@ Extensions | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Extensions

This page is about the PeyrSharp.Extensions module.

Compatibility

The PeyrSharp.Extensions module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Classes

Released under the MIT License.

- +
Skip to content
On this page

Extensions

This page is about the PeyrSharp.Extensions module.

Compatibility

The PeyrSharp.Extensions module is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Classes

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/extensions/array.html b/docs/extensions/array.html index 467ee5e1..8a48dd3b 100644 --- a/docs/extensions/array.html +++ b/docs/extensions/array.html @@ -5,17 +5,18 @@ ArrayExtensions | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

ArrayExtensions

This page is about the ArrayExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The ArrayExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

Append(item)

Definition

The Append<T>() method adds an item to an existing array of any type. It returns an array of the chosen type (T[]).

Arguments

TypeNameMeaning
TitemThe item to append in the array.

Usage

c#
using PeyrSharp.Extensions;
+    
Skip to content
On this page

ArrayExtensions

This page is about the ArrayExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The ArrayExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

Append(item)

Definition

The Append<T>() method adds an item to an existing array of any type. It returns an array of the chosen type (T[]).

Arguments

TypeNameMeaning
TitemThe item to append in the array.

Usage

c#
using PeyrSharp.Extensions;
 
 int[] numbers = { 1, 2, 3, 4 };
 int[] appendNumbers = numbers.Append(5);
@@ -35,9 +36,8 @@
 
 string[] array = { "a", "b", "c", "d" };
 string final = array.UnSplit(", "); // Concatenate the elements of the array with a comma and a space as a separator
-// final = "a, b, c, d"

Released under the MIT License.

- +// final = "a, b, c, d"

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/extensions/double.html b/docs/extensions/double.html index e6235add..916892c4 100644 --- a/docs/extensions/double.html +++ b/docs/extensions/double.html @@ -5,17 +5,18 @@ DoubleExtensions | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

DoubleExtensions

This page is about the DoubleExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The DoubleExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

Mean(values)

Definition

Calculates the mean (average) of a dataset. Returns the mean of the dataset as double.

Exceptions

TypeCondition
System.ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Extensions;
+    
Skip to content
On this page

DoubleExtensions

This page is about the DoubleExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The DoubleExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

Mean(values)

Definition

Calculates the mean (average) of a dataset. Returns the mean of the dataset as double.

Exceptions

TypeCondition
System.ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Extensions;
 
 double[] data = new double[] { 1.0, 2.0, 3.0, 4.0, 5.0 };
 double mean = data.Mean(); // 5

Median(values)

Definition

Calculates the median of a dataset. Returns the median of the dataset as double.

Exceptions

TypeCondition
ArgumentExceptionThrown if the dataset is empty.

Usage

c#
using PeyrSharp.Extensions;
@@ -65,9 +66,8 @@
 // terabyte = 1000

ToPetabyte(storageUnit)

Definition

Converts a size (kb, mb, ...) to petabyte. Returns a double value.

INFO

This method can also be used in PeyrSharp.Core.Converters.

Arguments

TypeNameMeaning
StorageUnitsstorageUnitThe unit of the value. (ex: kilobyte, gigabyte...)

Usage

c#
using PeyrSharp.Core.Converters;
 
 double petabyte = 1000.ToPetabyte(StorageUnits.Terabyte);
-// petabyte = 1

Released under the MIT License.

- +// petabyte = 1

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/extensions/int.html b/docs/extensions/int.html index 9591e384..cc3667d7 100644 --- a/docs/extensions/int.html +++ b/docs/extensions/int.html @@ -5,17 +5,18 @@ IntExtensions | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

IntExtensions

This page is about the IntExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The IntExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

GetDivisors()

Definition

Gets all divisors of a specific number. Returns an array of int[].

Arguments

This method does not have any arguments.

Usage

c#
using PeyrSharp.Extensions;
+    
Skip to content
On this page

IntExtensions

This page is about the IntExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The IntExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

GetDivisors()

Definition

Gets all divisors of a specific number. Returns an array of int[].

Arguments

This method does not have any arguments.

Usage

c#
using PeyrSharp.Extensions;
 
 int[] divs = 16.GetDivisors(); // { 1, 2, 4, 8, 16 }

IsEven()

Definition

Checks if the number is even. Returns a bool.

Arguments

This method does not have any arguments.

Usage

c#
using PeyrSharp.Extensions;
 
@@ -34,9 +35,8 @@
 
 Console.WriteLine($"The mode of the dataset is {mode}"); // 1

ToDouble()

Definition

Converts an int to double.

Arguments

This method does not have any arguments.

Usage

c#
using PeyrSharp.Extensions;
 
-double d = 16.ToDouble(); // 16.0d

Released under the MIT License.

- +double d = 16.ToDouble(); // 16.0d

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/extensions/string.html b/docs/extensions/string.html index 21dbb53d..db364a67 100644 --- a/docs/extensions/string.html +++ b/docs/extensions/string.html @@ -5,17 +5,18 @@ StringExtensions | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

StringExtensions

This page is about the StringExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The StringExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

CountWords()

Definition

Counts the number of words in a string. Returns int.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Extensions;
+    
Skip to content
On this page

StringExtensions

This page is about the StringExtensions class available in PeyrSharp.Extensions. You can find here all of its extension methods.

INFO

This class is static.

Compatibility

The StringExtensions class is part of the PeyrSharp.Extensions module, and is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
Extensions
Framework.NET 5.NET 6.NET 7
Extensions

Methods

CountWords()

Definition

Counts the number of words in a string. Returns int.

Arguments

This method has no arguments.

Usage

c#
using PeyrSharp.Extensions;
 
 int numberOfWords = "Hello, this is a test sentence!".CountWords();
 // numberOfWords = 6

CountWords(wordSeparator)

Definition

Counts the number of words in a string, with specified word separators. By default, the method uses those (if you don't pass any argument to it): , ,, ;, ., :, !, ?. Returns int.

Arguments

TypeNameMeaning
string[]wordSeparatorThe separator of the words.

Usage

c#
using PeyrSharp.Extensions;
@@ -54,9 +55,8 @@
 // upper = "Test"

Reverse(input)

Definition

Reverses a string.

Arguments

TypeNameDescription
stringinputThe string to reverse.

Returns

A string representing the reversed input.

Usage

c#
using PeyrSharp.Extensions;
 
 string reversed = "Hello, world!".Reverse();
-// Output: "!dlrow ,olleH"

Released under the MIT License.

- +// Output: "!dlrow ,olleH"

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/get-started.html b/docs/get-started.html index 96160089..58af42d3 100644 --- a/docs/get-started.html +++ b/docs/get-started.html @@ -5,24 +5,24 @@ Get Started | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Get Started

Packages and modules

Before installing PeyrSharp, you may want to consider what features you will actually need to use in your project. Indeed, PeyrSharp is divided in multiple modules and packages.

If you think you need all the features of PeyrSharp, you can directly install the PeyrSharp NuGet package. However, you can also install the packages that you only need in your project. Here's a list of all the packages and their features:

PeyrSharp, the main package, that contains all of the followings:

PeyrSharp.Core, the basic methods and features of C#
  • Maths
  • Password
  • Guid
  • Converters
  • Internet
  • Crypt
PeyrSharp.Env, methods related to the file system and to the current execution environment.
  • FileSys
  • Logger
  • Update
  • System
PeyrSharp.Enums, all enumerations used by PeyrSharp
  • LogLevel
  • WindowsVersion
  • TimeUnits
  • SystemThemes
  • OperatingSystems
  • StorageUnits
  • ControlAlignment
  • PasswordPresets
  • PasswordStrength
PeyrSharp.Exceptions, all exceptions used by PeyrSharp
  • RGBInvalidValueException
  • HEXInvalidValueException
  • InvalidGuidLengthException
PeyrSharp.Extensions, extension methods, that extends basic types, such as string, int, double or arrays (T[]).
  • String
  • Int
  • Double
  • Array (T[])
PeyrSharp.UiHelpers, methods related to Windows Forms or to the Windows Presentation Framework (WPF).
  • WinForms
  • Screen
  • WPF

Compatibility

Platforms

Some modules of PeyrSharp are targeting features only available in specific operating systems. Thus, some packages aren't available on all platforms.

Package/PlatformWindowsmacOSLinux + others
Core
Env⚠️⚠️
Enums
Exceptions
Extensions
UiHelpers

Caption:

  • ✅ Full Support
  • ⚠️ Partial Support
  • ❌ Unsupported platform

Frameworks

PeyrSharp is available in the following frameworks

  • .NET 5
  • .NET 6
  • .NET 7

INFO

.NET Framework and .NET Core are not targeted by PeyrSharp, since they are no longer supported.

Installation methods

PeyrShall is available on NuGet, you can install it by running the following command:

.NET CLI

You can add PeyrSharp to your project the .NET CLI.

powershell
dotnet add package PeyrSharp --version 1.0.0.2211

Package Manager

sh
NuGet\Install-Package PeyrSharp -Version 1.0.0.2211

Package Reference

You can specify in your project file that it is dependent on PeyrSharp.

xml
<PackageReference Include="PeyrSharp" Version="1.0.0.2211" />

Start coding

To call methods and classes included in PeyrSharp, you will need to add the corresponding using directives in your code file.

c#
using PeyrSharp.Core;
+    
Skip to content
On this page

Get Started

Packages and modules

Before installing PeyrSharp, you may want to consider what features you will actually need to use in your project. Indeed, PeyrSharp is divided in multiple modules and packages.

If you think you need all the features of PeyrSharp, you can directly install the PeyrSharp NuGet package. However, you can also install the packages that you only need in your project. Here's a list of all the packages and their features:

PeyrSharp, the main package, that contains all of the followings:

PeyrSharp.Core, the basic methods and features of C#
  • Maths
  • Password
  • Guid
  • Converters
  • Internet
  • Crypt
PeyrSharp.Env, methods related to the file system and to the current execution environment.
  • FileSys
  • Logger
  • Update
  • System
PeyrSharp.Enums, all enumerations used by PeyrSharp
  • LogLevel
  • WindowsVersion
  • TimeUnits
  • SystemThemes
  • OperatingSystems
  • StorageUnits
  • ControlAlignment
  • PasswordPresets
  • PasswordStrength
PeyrSharp.Exceptions, all exceptions used by PeyrSharp
  • RGBInvalidValueException
  • HEXInvalidValueException
  • InvalidGuidLengthException
PeyrSharp.Extensions, extension methods, that extends basic types, such as string, int, double or arrays (T[]).
  • String
  • Int
  • Double
  • Array (T[])
PeyrSharp.UiHelpers, methods related to Windows Forms or to the Windows Presentation Framework (WPF).
  • WinForms
  • Screen
  • WPF

Compatibility

Platforms

Some modules of PeyrSharp are targeting features only available in specific operating systems. Thus, some packages aren't available on all platforms.

Package/PlatformWindowsmacOSLinux + others
Core
Env⚠️⚠️
Enums
Exceptions
Extensions
UiHelpers

Caption:

  • ✅ Full Support
  • ⚠️ Partial Support
  • ❌ Unsupported platform

Frameworks

PeyrSharp is available in the following frameworks

  • .NET 5
  • .NET 6
  • .NET 7

INFO

.NET Framework and .NET Core are not targeted by PeyrSharp, since they are no longer supported.

Installation methods

PeyrShall is available on NuGet, you can install it by running the following command:

.NET CLI

You can add PeyrSharp to your project the .NET CLI.

powershell
dotnet add package PeyrSharp --version 1.0.0.2211

Package Manager

sh
NuGet\Install-Package PeyrSharp -Version 1.0.0.2211

Package Reference

You can specify in your project file that it is dependent on PeyrSharp.

xml
<PackageReference Include="PeyrSharp" Version="1.0.0.2211" />

Start coding

To call methods and classes included in PeyrSharp, you will need to add the corresponding using directives in your code file.

c#
using PeyrSharp.Core;
 using PeyrSharp.Env;
 using PeyrSharp.Enums;
 using PeyrSharp.Exceptions;
 using PeyrSharp.Extensions;
-using PeyrSharp.UiHelpers; // Windows only

For more information, you can check the reference

Released under the MIT License.

- +using PeyrSharp.UiHelpers; // Windows only

For more information, you can check the reference

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/hashmap.json b/docs/hashmap.json index 359c03c8..5a216895 100644 --- a/docs/hashmap.json +++ b/docs/hashmap.json @@ -1 +1 @@ -{"core_maths_geometry_circle.md":"e17d53a3","ui-helpers.md":"a8059bb6","core_guid.md":"859f4c0d","core_converters_colors_rgb.md":"ff4910bf","core_password.md":"1daf009f","env.md":"f9dbcaff","env_uwpapp.md":"772e12c1","core_converters_colors_hex.md":"1be7009e","env_filesys.md":"830df3a3","core_maths_geometry_cone.md":"0a557e23","core_converters.md":"cabb3edc","core_crypt.md":"515d31eb","core_maths_trigonometry.md":"c077acb3","core.md":"6ea96005","core_statusinfo.md":"038b494a","core_maths_stats.md":"5e5b0939","core_converters_volumes.md":"ef4d4981","index.md":"2e30fbda","core_converters_distances.md":"c9199855","core_converters_colors_hsv.md":"8a2445f1","core_converters_angle.md":"2f3b013f","core_converters_temperatures.md":"7910007d","intro.md":"1957dd01","core_maths_geometry_diamond.md":"8a5f5fd8","env_system.md":"eb22e65d","core_maths_geometry.md":"bb1ce1d9","extensions_double.md":"8b8e8575","core_maths_geometry_cylinder.md":"4f73563e","core_converters_storage.md":"61854592","ui-helpers_winforms.md":"db7d438d","core_internet.md":"777d4333","core_guid-options.md":"43a23994","ui-helpers_screen.md":"2ef9612d","core_maths_geometry_pyramid.md":"0310bf75","core_converters_speeds.md":"c8cee65d","env_logger.md":"8299eaba","extensions_string.md":"2b9e7045","core_maths_geometry_triangle.md":"8a4205ff","core_maths_proba.md":"29a45d23","exceptions.md":"e7e68fb6","reference.md":"8929dea9","core_converters_time.md":"2b2ca65c","core_maths_percentages.md":"4fc6496d","extensions_array.md":"b6bd906a","core_maths_geometry_rectangle.md":"bde50885","core_maths.md":"943c74fb","enumerations.md":"6c2b75e1","core_converters_masses.md":"86e09b8b","core_maths_geometry_hexagon.md":"b8006212","ui-helpers_wpf.md":"99234932","core_maths_geometry_sphere.md":"8e538baa","core_maths_geometry_cube.md":"425fa255","get-started.md":"471947b8","core_maths_algebra.md":"f648b381","core_converters_energies.md":"52cf3f4a","extensions_int.md":"06c94f62","extensions.md":"e620f6c9","env_update.md":"b9700a57"} +{"core_converters_colors_hsv.md":"34af8b4a","core_converters_angle.md":"3818ea53","core_maths_geometry.md":"f210912f","env_uwpapp.md":"dcba768f","core_maths_geometry_triangle.md":"3062f476","core_converters_temperatures.md":"86f399dd","core_maths_geometry_rectangle.md":"de2778c8","core_converters_distances.md":"a2fa2889","core_json-helper.md":"e45838d6","core_internet.md":"6a296b9a","reference.md":"a31a0df4","ui-helpers.md":"63c75787","core_maths.md":"514d3cf2","core_maths_proba.md":"c9293802","core_maths_geometry_diamond.md":"5256c148","core_maths_percentages.md":"6e243752","env_update.md":"a1273893","core_converters_volumes.md":"891b8531","extensions.md":"b080d23b","core_maths_geometry_circle.md":"e12239d2","core_converters_speeds.md":"a110c0de","core_converters_masses.md":"39e62d78","exceptions.md":"aae9c983","core_converters_storage.md":"2b813e83","extensions_string.md":"57d0b3ae","core_converters_colors_rgb.md":"35de48d5","env_filesys.md":"8589c991","core_converters_time.md":"2241ec46","core_maths_stats.md":"9297b391","core.md":"f6d4ea4c","core_maths_geometry_cube.md":"1daf7518","extensions_int.md":"8d3dd603","core_converters_colors_hex.md":"a4ef033c","intro.md":"8e286665","core_maths_geometry_sphere.md":"1827ca30","enumerations.md":"ae8efbeb","core_xml-helper.md":"db6a1186","env_logger.md":"cbed7f54","core_converters.md":"6208e554","get-started.md":"a01a8ac8","index.md":"6827c3c3","core_guid-options.md":"c396b689","core_maths_geometry_cylinder.md":"1f35fb1b","ui-helpers_wpf.md":"9c708ade","core_maths_algebra.md":"25cd2650","core_maths_geometry_cone.md":"ab75c386","extensions_array.md":"fc0364fa","env.md":"7a083ce5","core_crypt.md":"89a6c77c","ui-helpers_screen.md":"abf9d1aa","core_converters_energies.md":"917d6be6","core_statusinfo.md":"a51639ad","core_guid.md":"d249cd02","core_maths_geometry_hexagon.md":"3164db2b","core_maths_trigonometry.md":"78849101","core_password.md":"a9888b08","core_maths_geometry_pyramid.md":"8ad145a7","extensions_double.md":"de01a066","ui-helpers_winforms.md":"3d7797a8","env_system.md":"45d34ea7"} diff --git a/docs/index.html b/docs/index.html index 21af966b..3b05b1c2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,19 +5,19 @@ PeyrSharp | A C# library designed to make developers' job easier. - - + + + - - - - - + + + + + -
Skip to content

PeyrSharp

Made for you.

A C# library designed to make developers' job easier.

PeyrSharp

Easy-to-use

Using PeyrSharp in a project is very easy and intuitive.

🚀

.NET Powered

PeyrSharp is built using C# and .NET. It's available for projects targeting .NET 5 and higher.

🖥️

Cross-Platform

PeyrSharp is compatible with every operating systems that .NET supports.

Released under the MIT License.

- + + \ No newline at end of file diff --git a/docs/intro.html b/docs/intro.html index 34d05b40..79fc74c3 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -5,19 +5,19 @@ Introduction | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Introduction

The roots

In March 2020, we published LeoCorpLibrary, which was also a C# library that contains useful methods. When we started the development of it, we didn't know where the project will go yet. Over the releases, we've added more and more methods and new features. However, the meaning and the purpose of LeoCorpLibrary was becoming less clear for everyone; it was becoming a mess. This is why we decided to rather not release v5, but instead, we decided to make a brand new .NET Library, PeyrSharp.

Our next product

PeyrSharp is a C# written library designed to make developers' life easier. We've all written code that we wish we hadn't. PeyrSharp is here to respond to this need; by implementing useful methods in various domains: Mathematics, Web/HTTP requests, unit converters, extensions, environment-related operations, and more!

Modules

PeyrSharp is divided in multiple packages:

PeyrSharp, the main package, that contains all of the followings:

PeyrSharp.Core, the basic methods and features of C#
  • Maths
  • Password
  • Guid
  • Converters
  • Internet
  • Crypt
PeyrSharp.Env, methods related to the file system and to the current execution environment.
  • FileSys
  • Logger
  • Update
  • System
PeyrSharp.Enums, all enumerations used by PeyrSharp
  • WindowsVersion
  • TimeUnits
  • SystemThemes
  • OperatingSystems
  • StorageUnits
  • ControlAlignment
  • PasswordPresets
  • PasswordStrength
PeyrSharp.Exceptions, all exceptions used by PeyrSharp
  • RGBInvalidValueException
  • HEXInvalidValueException
  • InvalidGuidLengthException
PeyrSharp.Extensions, extension methods, that extends basic types, such as string, int, double or arrays (T[]).
  • String
  • Int
  • Double
  • Array (T[])
PeyrSharp.UiHelpers, methods related to Windows Forms or to the Windows Presentation Framework (WPF).
  • WinForms
  • Screen
  • WPF

Compatibility

Platforms

Some modules of PeyrSharp are targeting features only available in specific operating systems. Thus, some packages aren't available on all platform.

Package/PlatformWindowsmacOSLinux + others
Core
Env⚠️⚠️
Enums
Exceptions
Extensions
UiHelpers

Caption:

  • ✅ Full Support
  • ⚠️ Partial Support
  • ❌ Unsupported platform

Frameworks

PeyrSharp is available in the following frameworks

  • .NET 5
  • .NET 6
  • .NET 7

NOTE

.NET Framework and .NET Core are not targeted by PeyrSharp, since they are no longer supported.

Released under the MIT License.

- +
Skip to content
On this page

Introduction

The roots

In March 2020, we published LeoCorpLibrary, which was also a C# library that contains useful methods. When we started the development of it, we didn't know where the project will go yet. Over the releases, we've added more and more methods and new features. However, the meaning and the purpose of LeoCorpLibrary was becoming less clear for everyone; it was becoming a mess. This is why we decided to rather not release v5, but instead, we decided to make a brand new .NET Library, PeyrSharp.

Our next product

PeyrSharp is a C# written library designed to make developers' life easier. We've all written code that we wish we hadn't. PeyrSharp is here to respond to this need; by implementing useful methods in various domains: Mathematics, Web/HTTP requests, unit converters, extensions, environment-related operations, and more!

Modules

PeyrSharp is divided in multiple packages:

PeyrSharp, the main package, that contains all of the followings:

PeyrSharp.Core, the basic methods and features of C#
  • Maths
  • Password
  • Guid
  • Converters
  • Internet
  • Crypt
PeyrSharp.Env, methods related to the file system and to the current execution environment.
  • FileSys
  • Logger
  • Update
  • System
PeyrSharp.Enums, all enumerations used by PeyrSharp
  • WindowsVersion
  • TimeUnits
  • SystemThemes
  • OperatingSystems
  • StorageUnits
  • ControlAlignment
  • PasswordPresets
  • PasswordStrength
PeyrSharp.Exceptions, all exceptions used by PeyrSharp
  • RGBInvalidValueException
  • HEXInvalidValueException
  • InvalidGuidLengthException
PeyrSharp.Extensions, extension methods, that extends basic types, such as string, int, double or arrays (T[]).
  • String
  • Int
  • Double
  • Array (T[])
PeyrSharp.UiHelpers, methods related to Windows Forms or to the Windows Presentation Framework (WPF).
  • WinForms
  • Screen
  • WPF

Compatibility

Platforms

Some modules of PeyrSharp are targeting features only available in specific operating systems. Thus, some packages aren't available on all platform.

Package/PlatformWindowsmacOSLinux + others
Core
Env⚠️⚠️
Enums
Exceptions
Extensions
UiHelpers

Caption:

  • ✅ Full Support
  • ⚠️ Partial Support
  • ❌ Unsupported platform

Frameworks

PeyrSharp is available in the following frameworks

  • .NET 5
  • .NET 6
  • .NET 7

NOTE

.NET Framework and .NET Core are not targeted by PeyrSharp, since they are no longer supported.

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/reference.html b/docs/reference.html index 9022868c..867d163f 100644 --- a/docs/reference.html +++ b/docs/reference.html @@ -5,19 +5,19 @@ Reference | PeyrSharp - - + + + - - - - - + + + + + - - + + \ No newline at end of file diff --git a/docs/ui-helpers.html b/docs/ui-helpers.html index 5422313c..0fd65397 100644 --- a/docs/ui-helpers.html +++ b/docs/ui-helpers.html @@ -5,19 +5,19 @@ UiHelpers | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

UiHelpers

This page is about the exceptions available in PeyrSharp.UiHelpers. They are grouped by category.

Compatibility

UiHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Classes

Released under the MIT License.

- +
Skip to content
On this page

UiHelpers

This page is about the exceptions available in PeyrSharp.UiHelpers. They are grouped by category.

Compatibility

UiHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Classes

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/ui-helpers/screen.html b/docs/ui-helpers/screen.html index aac08ab4..79d046a5 100644 --- a/docs/ui-helpers/screen.html +++ b/docs/ui-helpers/screen.html @@ -5,17 +5,18 @@ Screen | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

Screen

This page is about the ScreenHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

ScreenHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

GetDpi(form)

Definition

Gets the DPI of the screen where the Windows Form is located. It returns a double value.

Arguments

TypeNameMeaning
FormformThe form to get the DPI of.

Usage

c#
using PeyrSharp.UiHelpers;
+    
Skip to content
On this page

Screen

This page is about the ScreenHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

ScreenHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

GetDpi(form)

Definition

Gets the DPI of the screen where the Windows Form is located. It returns a double value.

Arguments

TypeNameMeaning
FormformThe form to get the DPI of.

Usage

c#
using PeyrSharp.UiHelpers;
 using System;
 using System.Windows.Forms;
 
@@ -55,9 +56,8 @@
     {
         MessageBox.Show(ScreenHelpers.GetScreenScaling(this));
     }
-}

Released under the MIT License.

- +}

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/ui-helpers/winforms.html b/docs/ui-helpers/winforms.html index bf29e794..7a8f44b9 100644 --- a/docs/ui-helpers/winforms.html +++ b/docs/ui-helpers/winforms.html @@ -5,17 +5,18 @@ WinForms | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

WinForms

This page is about the WinFormsHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

WinFormsHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

CenterControl(control, form)

Definition

Centers horizontally and vertically a Control on a Form.

Arguments

TypeNameMeaning
ControlcontrolThe control to center.
FormformThe form where the control needs to be centered.

Usage

c#
using PeyrSharp.UiHelpers;
+    
Skip to content
On this page

WinForms

This page is about the WinFormsHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

WinFormsHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

CenterControl(control, form)

Definition

Centers horizontally and vertically a Control on a Form.

Arguments

TypeNameMeaning
ControlcontrolThe control to center.
FormformThe form where the control needs to be centered.

Usage

c#
using PeyrSharp.UiHelpers;
 using System;
 using System.Windows.Forms;
 
@@ -51,9 +52,8 @@
         // Put the current form in the middle of the screen
         WinFormsHelpers.CenterForm(this); 
     }
-}

Released under the MIT License.

- +}

Released under the MIT License.

+ \ No newline at end of file diff --git a/docs/ui-helpers/wpf.html b/docs/ui-helpers/wpf.html index 00dd0ba8..fcfce6a6 100644 --- a/docs/ui-helpers/wpf.html +++ b/docs/ui-helpers/wpf.html @@ -5,22 +5,22 @@ WPF | PeyrSharp - - + + + - - - - - + + + + + -
Skip to content
On this page

WPF

This page is about the WpfHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

WinFormsHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

CenterWindow(window)

Definition

Centers a Window on the primary screen.

Arguments

TypeNameMeaning
WindowwindowThe Window to center.

Usage

c#
using PeyrSharp.UiHelpers;
+    
Skip to content
On this page

WPF

This page is about the WpfHelpers class available in PeyrSharp.UiHelpers. This page is about all of its methods.

Compatibility

WinFormsHelpers are part of the PeyrSharp.UiHelpers module, which is compatible with all of these frameworks and platforms:

Package/PlatformWindowsmacOSLinux + others
UiHelpers
Framework.NET 5.NET 6.NET 7
UiHelpers

Methods

CenterWindow(window)

Definition

Centers a Window on the primary screen.

Arguments

TypeNameMeaning
WindowwindowThe Window to center.

Usage

c#
using PeyrSharp.UiHelpers;
 
 Window window = new Window();
-WpfHelpers.CenterWindow(window); // Center the window on the primary screen

Released under the MIT License.

- +WpfHelpers.CenterWindow(window); // Center the window on the primary screen

Released under the MIT License.

+ \ No newline at end of file