From 2a061a9da5a0553d9a7a4fc7a40affbc65ab7bcb Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 5 Dec 2024 11:36:19 +0000 Subject: [PATCH] Deployed 6ecc94c5 to v6.0.0-beta01 with MkDocs 1.6.1 and mike 2.0.0 --- v6.0.0-beta01/404.html | 1057 +++ v6.0.0-beta01/about/credits/index.html | 522 ++ v6.0.0-beta01/about/issues/index.html | 521 ++ v6.0.0-beta01/about/license/index.html | 534 ++ v6.0.0-beta01/about/support/index.html | 521 ++ v6.0.0-beta01/assets/diagrams.drawio | 1 + v6.0.0-beta01/assets/images/favicon.png | Bin 0 -> 1870 bytes v6.0.0-beta01/assets/images/favicon.svg | 3 + v6.0.0-beta01/assets/images/logo.svg | 1 + .../assets/javascripts/bundle.d7c377c4.min.js | 29 + .../javascripts/bundle.d7c377c4.min.js.map | 7 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.el.min.js | 1 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.he.min.js | 1 + .../javascripts/lunr/min/lunr.hi.min.js | 1 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.hy.min.js | 1 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.kn.min.js | 1 + .../javascripts/lunr/min/lunr.ko.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.ta.min.js | 1 + .../javascripts/lunr/min/lunr.te.min.js | 1 + .../javascripts/lunr/min/lunr.th.min.js | 1 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + .../javascripts/lunr/min/lunr.zh.min.js | 1 + .../assets/javascripts/lunr/tinyseg.js | 206 + .../assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../assets/javascripts/swagger-initializer.js | 20 + .../assets/javascripts/swagger-ui-bundle.js | 3 + .../javascripts/swagger-ui-bundle.js.map | 1 + .../javascripts/swagger-ui-es-bundle-core.js | 3 + .../swagger-ui-es-bundle-core.js.map | 1 + .../javascripts/swagger-ui-es-bundle.js | 3 + .../javascripts/swagger-ui-es-bundle.js.map | 1 + .../swagger-ui-standalone-preset.js | 3 + .../swagger-ui-standalone-preset.js.map | 1 + .../workers/search.f886a092.min.js | 42 + .../workers/search.f886a092.min.js.map | 7 + v6.0.0-beta01/assets/stylesheets/.DS_Store | Bin 0 -> 6148 bytes .../assets/stylesheets/main.50c56a3b.min.css | 1 + .../stylesheets/main.50c56a3b.min.css.map | 1 + .../stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + .../assets/stylesheets/swagger-ui-dark.css | 833 ++ .../assets/stylesheets/swagger-ui.css | 3 + .../assets/stylesheets/swagger-ui.css.map | 1 + .../assets/stylesheets/swagger-ui.js | 2 + .../assets/stylesheets/swagger-ui.js.map | 1 + .../assets/swagger-ui/oauth2-redirect.html | 79 + v6.0.0-beta01/aws/index.html | 740 ++ v6.0.0-beta01/azure/index.html | 762 ++ v6.0.0-beta01/b2c-applications/index.html | 636 ++ v6.0.0-beta01/concepts/index.html | 1373 ++++ .../dev-guide/conception/diagrams/index.html | 976 +++ v6.0.0-beta01/dev-guide/index.html | 1229 +++ .../dev-guide/migrations/v3-to-v4/index.html | 614 ++ .../dev-guide/migrations/v4-to-v5/index.html | 651 ++ .../unit-tests-common-practices/index.html | 783 ++ .../index.html | 888 +++ v6.0.0-beta01/images/architecture.png | Bin 0 -> 58933 bytes v6.0.0-beta01/images/architecture_AWS.png | Bin 0 -> 45769 bytes v6.0.0-beta01/images/awsdeploy-designer.png | Bin 0 -> 353206 bytes v6.0.0-beta01/images/device-configuration.png | Bin 0 -> 48996 bytes v6.0.0-beta01/images/device-model.png | Bin 0 -> 49938 bytes v6.0.0-beta01/images/device-twin.png | Bin 0 -> 54297 bytes v6.0.0-beta01/images/edge-configuration.png | Bin 0 -> 39539 bytes v6.0.0-beta01/images/iot-edge.png | Bin 0 -> 50255 bytes .../images/iothub-create-consumer-group.png | Bin 0 -> 58689 bytes .../images/iothub-get-event-hub-endpoint.png | Bin 0 -> 62506 bytes v6.0.0-beta01/images/lora-concentrator.png | Bin 0 -> 38154 bytes v6.0.0-beta01/images/lora-device-details.png | Bin 0 -> 58180 bytes v6.0.0-beta01/images/lora-device-model.png | Bin 0 -> 62177 bytes .../lora-feature-device-model-toggle.png | Bin 0 -> 4197 bytes .../lorawan-device-not-joined-message.png | Bin 0 -> 3483 bytes v6.0.0-beta01/images/overall-architecture.png | Bin 0 -> 69029 bytes v6.0.0-beta01/index.html | 668 ++ v6.0.0-beta01/open-api/index.html | 520 ++ v6.0.0-beta01/open-api/swagger-93337aca.html | 111 + v6.0.0-beta01/search/search_index.json | 1 + v6.0.0-beta01/sitemap.xml | 3 + v6.0.0-beta01/sitemap.xml.gz | Bin 0 -> 127 bytes v6.0.0-beta01/swagger.json | 5891 +++++++++++++++ versions.json | 5 + 101 files changed, 27256 insertions(+) create mode 100644 v6.0.0-beta01/404.html create mode 100644 v6.0.0-beta01/about/credits/index.html create mode 100644 v6.0.0-beta01/about/issues/index.html create mode 100644 v6.0.0-beta01/about/license/index.html create mode 100644 v6.0.0-beta01/about/support/index.html create mode 100644 v6.0.0-beta01/assets/diagrams.drawio create mode 100644 v6.0.0-beta01/assets/images/favicon.png create mode 100644 v6.0.0-beta01/assets/images/favicon.svg create mode 100644 v6.0.0-beta01/assets/images/logo.svg create mode 100644 v6.0.0-beta01/assets/javascripts/bundle.d7c377c4.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/bundle.d7c377c4.min.js.map create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/tinyseg.js create mode 100644 v6.0.0-beta01/assets/javascripts/lunr/wordcut.js create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-initializer.js create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-ui-bundle.js create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-ui-bundle.js.map create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-ui-es-bundle-core.js create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-ui-es-bundle-core.js.map create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-ui-es-bundle.js create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-ui-es-bundle.js.map create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-ui-standalone-preset.js create mode 100644 v6.0.0-beta01/assets/javascripts/swagger-ui-standalone-preset.js.map create mode 100644 v6.0.0-beta01/assets/javascripts/workers/search.f886a092.min.js create mode 100644 v6.0.0-beta01/assets/javascripts/workers/search.f886a092.min.js.map create mode 100644 v6.0.0-beta01/assets/stylesheets/.DS_Store create mode 100644 v6.0.0-beta01/assets/stylesheets/main.50c56a3b.min.css create mode 100644 v6.0.0-beta01/assets/stylesheets/main.50c56a3b.min.css.map create mode 100644 v6.0.0-beta01/assets/stylesheets/palette.06af60db.min.css create mode 100644 v6.0.0-beta01/assets/stylesheets/palette.06af60db.min.css.map create mode 100644 v6.0.0-beta01/assets/stylesheets/swagger-ui-dark.css create mode 100644 v6.0.0-beta01/assets/stylesheets/swagger-ui.css create mode 100644 v6.0.0-beta01/assets/stylesheets/swagger-ui.css.map create mode 100644 v6.0.0-beta01/assets/stylesheets/swagger-ui.js create mode 100644 v6.0.0-beta01/assets/stylesheets/swagger-ui.js.map create mode 100644 v6.0.0-beta01/assets/swagger-ui/oauth2-redirect.html create mode 100644 v6.0.0-beta01/aws/index.html create mode 100644 v6.0.0-beta01/azure/index.html create mode 100644 v6.0.0-beta01/b2c-applications/index.html create mode 100644 v6.0.0-beta01/concepts/index.html create mode 100644 v6.0.0-beta01/dev-guide/conception/diagrams/index.html create mode 100644 v6.0.0-beta01/dev-guide/index.html create mode 100644 v6.0.0-beta01/dev-guide/migrations/v3-to-v4/index.html create mode 100644 v6.0.0-beta01/dev-guide/migrations/v4-to-v5/index.html create mode 100644 v6.0.0-beta01/dev-guide/testing/unit-tests-common-practices/index.html create mode 100644 v6.0.0-beta01/dev-guide/testing/unit-tests-on-blazor-components/index.html create mode 100644 v6.0.0-beta01/images/architecture.png create mode 100644 v6.0.0-beta01/images/architecture_AWS.png create mode 100644 v6.0.0-beta01/images/awsdeploy-designer.png create mode 100644 v6.0.0-beta01/images/device-configuration.png create mode 100644 v6.0.0-beta01/images/device-model.png create mode 100644 v6.0.0-beta01/images/device-twin.png create mode 100644 v6.0.0-beta01/images/edge-configuration.png create mode 100644 v6.0.0-beta01/images/iot-edge.png create mode 100644 v6.0.0-beta01/images/iothub-create-consumer-group.png create mode 100644 v6.0.0-beta01/images/iothub-get-event-hub-endpoint.png create mode 100644 v6.0.0-beta01/images/lora-concentrator.png create mode 100644 v6.0.0-beta01/images/lora-device-details.png create mode 100644 v6.0.0-beta01/images/lora-device-model.png create mode 100644 v6.0.0-beta01/images/lora-feature-device-model-toggle.png create mode 100644 v6.0.0-beta01/images/lorawan-device-not-joined-message.png create mode 100644 v6.0.0-beta01/images/overall-architecture.png create mode 100644 v6.0.0-beta01/index.html create mode 100644 v6.0.0-beta01/open-api/index.html create mode 100644 v6.0.0-beta01/open-api/swagger-93337aca.html create mode 100644 v6.0.0-beta01/search/search_index.json create mode 100644 v6.0.0-beta01/sitemap.xml create mode 100644 v6.0.0-beta01/sitemap.xml.gz create mode 100644 v6.0.0-beta01/swagger.json diff --git a/v6.0.0-beta01/404.html b/v6.0.0-beta01/404.html new file mode 100644 index 000000000..d6f649ae2 --- /dev/null +++ b/v6.0.0-beta01/404.html @@ -0,0 +1,1057 @@ + + + + + + + + + + + + + + + + + + + + + IoT Hub Portal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/v6.0.0-beta01/about/credits/index.html b/v6.0.0-beta01/about/credits/index.html new file mode 100644 index 000000000..7a12081fd --- /dev/null +++ b/v6.0.0-beta01/about/credits/index.html @@ -0,0 +1,522 @@ + + + + + + + + + + + + +Credits - IoT Hub Portal + + + + + + + + + + + +
+ + Skip to content + +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ + +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/about/issues/index.html b/v6.0.0-beta01/about/issues/index.html new file mode 100644 index 000000000..632f44593 --- /dev/null +++ b/v6.0.0-beta01/about/issues/index.html @@ -0,0 +1,521 @@ + + + + + + + + + + + + +Known Issues - IoT Hub Portal + + + + + + + + + + + +
+ + Skip to content + +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

Known Issues and Limitations

+

Refer to Known Issues +for known issues, gotchas and limitations.

+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/about/license/index.html b/v6.0.0-beta01/about/license/index.html new file mode 100644 index 000000000..abb3356c7 --- /dev/null +++ b/v6.0.0-beta01/about/license/index.html @@ -0,0 +1,534 @@ + + + + + + + + + + + +License - IoT Hub Portal + + + + + + + + + + + +
+ + Skip to content + +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

MIT License

+

Copyright © 2021 CGI France

+

Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.

+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/about/support/index.html b/v6.0.0-beta01/about/support/index.html new file mode 100644 index 000000000..25b59ea1b --- /dev/null +++ b/v6.0.0-beta01/about/support/index.html @@ -0,0 +1,521 @@ + + + + + + + + + + + + +Support - IoT Hub Portal + + + + + + + + + + + +
+ + Skip to content + +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

Support

+

This is an open source solution. +For bugs and issues with the codebase please log an issue in this repo.

+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/assets/diagrams.drawio b/v6.0.0-beta01/assets/diagrams.drawio new file mode 100644 index 000000000..05ca4716e --- /dev/null +++ b/v6.0.0-beta01/assets/diagrams.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/v6.0.0-beta01/assets/images/favicon.png b/v6.0.0-beta01/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/assets/images/favicon.svg b/v6.0.0-beta01/assets/images/favicon.svg new file mode 100644 index 000000000..7f67f080c --- /dev/null +++ b/v6.0.0-beta01/assets/images/favicon.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/v6.0.0-beta01/assets/images/logo.svg b/v6.0.0-beta01/assets/images/logo.svg new file mode 100644 index 000000000..e490c492e --- /dev/null +++ b/v6.0.0-beta01/assets/images/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/v6.0.0-beta01/assets/javascripts/bundle.d7c377c4.min.js b/v6.0.0-beta01/assets/javascripts/bundle.d7c377c4.min.js new file mode 100644 index 000000000..6a0bcf880 --- /dev/null +++ b/v6.0.0-beta01/assets/javascripts/bundle.d7c377c4.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var Mi=Object.create;var gr=Object.defineProperty;var Li=Object.getOwnPropertyDescriptor;var _i=Object.getOwnPropertyNames,Ft=Object.getOwnPropertySymbols,Ai=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty,ro=Object.prototype.propertyIsEnumerable;var to=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))xr.call(t,r)&&to(e,r,t[r]);if(Ft)for(var r of Ft(t))ro.call(t,r)&&to(e,r,t[r]);return e};var oo=(e,t)=>{var r={};for(var o in e)xr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Ft)for(var o of Ft(e))t.indexOf(o)<0&&ro.call(e,o)&&(r[o]=e[o]);return r};var yr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ci=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _i(t))!xr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=Li(t,n))||o.enumerable});return e};var jt=(e,t,r)=>(r=e!=null?Mi(Ai(e)):{},Ci(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var no=(e,t,r)=>new Promise((o,n)=>{var i=c=>{try{a(r.next(c))}catch(p){n(p)}},s=c=>{try{a(r.throw(c))}catch(p){n(p)}},a=c=>c.done?o(c.value):Promise.resolve(c.value).then(i,s);a((r=r.apply(e,t)).next())});var ao=yr((Er,io)=>{(function(e,t){typeof Er=="object"&&typeof io!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(C){return!!(C&&C!==document&&C.nodeName!=="HTML"&&C.nodeName!=="BODY"&&"classList"in C&&"contains"in C.classList)}function c(C){var ct=C.type,Ve=C.tagName;return!!(Ve==="INPUT"&&s[ct]&&!C.readOnly||Ve==="TEXTAREA"&&!C.readOnly||C.isContentEditable)}function p(C){C.classList.contains("focus-visible")||(C.classList.add("focus-visible"),C.setAttribute("data-focus-visible-added",""))}function l(C){C.hasAttribute("data-focus-visible-added")&&(C.classList.remove("focus-visible"),C.removeAttribute("data-focus-visible-added"))}function f(C){C.metaKey||C.altKey||C.ctrlKey||(a(r.activeElement)&&p(r.activeElement),o=!0)}function u(C){o=!1}function d(C){a(C.target)&&(o||c(C.target))&&p(C.target)}function y(C){a(C.target)&&(C.target.classList.contains("focus-visible")||C.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(C.target))}function b(C){document.visibilityState==="hidden"&&(n&&(o=!0),D())}function D(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function Q(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(C){C.target.nodeName&&C.target.nodeName.toLowerCase()==="html"||(o=!1,Q())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",b,!0),D(),r.addEventListener("focus",d,!0),r.addEventListener("blur",y,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var Kr=yr((kt,qr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof kt=="object"&&typeof qr=="object"?qr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof kt=="object"?kt.ClipboardJS=r():t.ClipboardJS=r()})(kt,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Oi}});var s=i(279),a=i.n(s),c=i(370),p=i.n(c),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(_){return!1}}var d=function(_){var O=f()(_);return u("cut"),O},y=d;function b(V){var _=document.documentElement.getAttribute("dir")==="rtl",O=document.createElement("textarea");O.style.fontSize="12pt",O.style.border="0",O.style.padding="0",O.style.margin="0",O.style.position="absolute",O.style[_?"right":"left"]="-9999px";var $=window.pageYOffset||document.documentElement.scrollTop;return O.style.top="".concat($,"px"),O.setAttribute("readonly",""),O.value=V,O}var D=function(_,O){var $=b(_);O.container.appendChild($);var N=f()($);return u("copy"),$.remove(),N},Q=function(_){var O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},$="";return typeof _=="string"?$=D(_,O):_ instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(_==null?void 0:_.type)?$=D(_.value,O):($=f()(_),u("copy")),$},J=Q;function C(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?C=function(O){return typeof O}:C=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},C(V)}var ct=function(){var _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=_.action,$=O===void 0?"copy":O,N=_.container,Y=_.target,ke=_.text;if($!=="copy"&&$!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&C(Y)==="object"&&Y.nodeType===1){if($==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if($==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(ke)return J(ke,{container:N});if(Y)return $==="cut"?y(Y):J(Y,{container:N})},Ve=ct;function Fe(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(O){return typeof O}:Fe=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},Fe(V)}function vi(V,_){if(!(V instanceof _))throw new TypeError("Cannot call a class as a function")}function eo(V,_){for(var O=0;O<_.length;O++){var $=_[O];$.enumerable=$.enumerable||!1,$.configurable=!0,"value"in $&&($.writable=!0),Object.defineProperty(V,$.key,$)}}function gi(V,_,O){return _&&eo(V.prototype,_),O&&eo(V,O),V}function xi(V,_){if(typeof _!="function"&&_!==null)throw new TypeError("Super expression must either be null or a function");V.prototype=Object.create(_&&_.prototype,{constructor:{value:V,writable:!0,configurable:!0}}),_&&br(V,_)}function br(V,_){return br=Object.setPrototypeOf||function($,N){return $.__proto__=N,$},br(V,_)}function yi(V){var _=Ti();return function(){var $=Rt(V),N;if(_){var Y=Rt(this).constructor;N=Reflect.construct($,arguments,Y)}else N=$.apply(this,arguments);return Ei(this,N)}}function Ei(V,_){return _&&(Fe(_)==="object"||typeof _=="function")?_:wi(V)}function wi(V){if(V===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return V}function Ti(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(V){return!1}}function Rt(V){return Rt=Object.setPrototypeOf?Object.getPrototypeOf:function(O){return O.__proto__||Object.getPrototypeOf(O)},Rt(V)}function vr(V,_){var O="data-clipboard-".concat(V);if(_.hasAttribute(O))return _.getAttribute(O)}var Si=function(V){xi(O,V);var _=yi(O);function O($,N){var Y;return vi(this,O),Y=_.call(this),Y.resolveOptions(N),Y.listenClick($),Y}return gi(O,[{key:"resolveOptions",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof N.action=="function"?N.action:this.defaultAction,this.target=typeof N.target=="function"?N.target:this.defaultTarget,this.text=typeof N.text=="function"?N.text:this.defaultText,this.container=Fe(N.container)==="object"?N.container:document.body}},{key:"listenClick",value:function(N){var Y=this;this.listener=p()(N,"click",function(ke){return Y.onClick(ke)})}},{key:"onClick",value:function(N){var Y=N.delegateTarget||N.currentTarget,ke=this.action(Y)||"copy",It=Ve({action:ke,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(It?"success":"error",{action:ke,text:It,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(N){return vr("action",N)}},{key:"defaultTarget",value:function(N){var Y=vr("target",N);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(N){return vr("text",N)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(N){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(N,Y)}},{key:"cut",value:function(N){return y(N)}},{key:"isSupported",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof N=="string"?[N]:N,ke=!!document.queryCommandSupported;return Y.forEach(function(It){ke=ke&&!!document.queryCommandSupported(It)}),ke}}]),O}(a()),Oi=Si},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,c){for(;a&&a.nodeType!==n;){if(typeof a.matches=="function"&&a.matches(c))return a;a=a.parentNode}}o.exports=s},438:function(o,n,i){var s=i(828);function a(l,f,u,d,y){var b=p.apply(this,arguments);return l.addEventListener(u,b,y),{destroy:function(){l.removeEventListener(u,b,y)}}}function c(l,f,u,d,y){return typeof l.addEventListener=="function"?a.apply(null,arguments):typeof u=="function"?a.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(b){return a(b,f,u,d,y)}))}function p(l,f,u,d){return function(y){y.delegateTarget=s(y.target,f),y.delegateTarget&&d.call(l,y)}}o.exports=c},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}},370:function(o,n,i){var s=i(879),a=i(438);function c(u,d,y){if(!u&&!d&&!y)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(y))throw new TypeError("Third argument must be a Function");if(s.node(u))return p(u,d,y);if(s.nodeList(u))return l(u,d,y);if(s.string(u))return f(u,d,y);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function p(u,d,y){return u.addEventListener(d,y),{destroy:function(){u.removeEventListener(d,y)}}}function l(u,d,y){return Array.prototype.forEach.call(u,function(b){b.addEventListener(d,y)}),{destroy:function(){Array.prototype.forEach.call(u,function(b){b.removeEventListener(d,y)})}}}function f(u,d,y){return a(document.body,u,d,y)}o.exports=c},817:function(o){function n(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),p=document.createRange();p.selectNodeContents(i),c.removeAllRanges(),c.addRange(p),s=c.toString()}return s}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,s,a){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var c=this;function p(){c.off(i,p),s.apply(a,arguments)}return p._=s,this.on(i,p,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),c=0,p=a.length;for(c;c{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var Wa=/["'&<>]/;Vn.exports=Ua;function Ua(e){var t=""+e,r=Wa.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function z(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function K(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||a(u,d)})})}function a(u,d){try{c(o[u](d))}catch(y){f(i[0][3],y)}}function c(u){u.value instanceof ot?Promise.resolve(u.value.v).then(p,l):f(i[0][2],u)}function p(u){a("next",u)}function l(u){a("throw",u)}function f(u,d){u(d),i.shift(),i.length&&a(i[0][0],i[0][1])}}function po(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof be=="function"?be(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),n(a,c,s.done,s.value)})}}function n(i,s,a,c){Promise.resolve(c).then(function(p){i({value:p,done:a})},s)}}function k(e){return typeof e=="function"}function pt(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var Ut=pt(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function ze(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var je=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=be(s),c=a.next();!c.done;c=a.next()){var p=c.value;p.remove(this)}}catch(b){t={error:b}}finally{try{c&&!c.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var l=this.initialTeardown;if(k(l))try{l()}catch(b){i=b instanceof Ut?b.errors:[b]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=be(f),d=u.next();!d.done;d=u.next()){var y=d.value;try{lo(y)}catch(b){i=i!=null?i:[],b instanceof Ut?i=K(K([],z(i)),z(b.errors)):i.push(b)}}}catch(b){o={error:b}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new Ut(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)lo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&ze(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&ze(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=je.EMPTY;function Nt(e){return e instanceof je||e&&"closed"in e&&k(e.remove)&&k(e.add)&&k(e.unsubscribe)}function lo(e){k(e)?e():e.unsubscribe()}var He={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var lt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,s=n.isStopped,a=n.observers;return i||s?Tr:(this.currentObservers=null,a.push(r),new je(function(){o.currentObservers=null,ze(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,s=o.isStopped;n?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new I;return r.source=this,r},t.create=function(r,o){return new xo(r,o)},t}(I);var xo=function(e){se(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(x);var St={now:function(){return(St.delegate||Date).now()},delegate:void 0};var Ot=function(e){se(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=St);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,s=o._infiniteTimeWindow,a=o._timestampProvider,c=o._windowTime;n||(i.push(r),!s&&i.push(a.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,s=n._buffer,a=s.slice(),c=0;c0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=ut.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var s=r.actions;o!=null&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==o&&(ut.cancelAnimationFrame(o),r._scheduled=void 0)},t}(zt);var wo=function(e){se(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(qt);var ge=new wo(Eo);var M=new I(function(e){return e.complete()});function Kt(e){return e&&k(e.schedule)}function Cr(e){return e[e.length-1]}function Ge(e){return k(Cr(e))?e.pop():void 0}function Ae(e){return Kt(Cr(e))?e.pop():void 0}function Qt(e,t){return typeof Cr(e)=="number"?e.pop():t}var dt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Yt(e){return k(e==null?void 0:e.then)}function Bt(e){return k(e[ft])}function Gt(e){return Symbol.asyncIterator&&k(e==null?void 0:e[Symbol.asyncIterator])}function Jt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Wi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Xt=Wi();function Zt(e){return k(e==null?void 0:e[Xt])}function er(e){return co(this,arguments,function(){var r,o,n,i;return Wt(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,ot(r.read())];case 3:return o=s.sent(),n=o.value,i=o.done,i?[4,ot(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,ot(n)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function tr(e){return k(e==null?void 0:e.getReader)}function F(e){if(e instanceof I)return e;if(e!=null){if(Bt(e))return Ui(e);if(dt(e))return Ni(e);if(Yt(e))return Di(e);if(Gt(e))return To(e);if(Zt(e))return Vi(e);if(tr(e))return zi(e)}throw Jt(e)}function Ui(e){return new I(function(t){var r=e[ft]();if(k(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Ni(e){return new I(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?v(function(n,i){return e(n,i,o)}):pe,ue(1),r?$e(t):Uo(function(){return new or}))}}function Rr(e){return e<=0?function(){return M}:g(function(t,r){var o=[];t.subscribe(E(r,function(n){o.push(n),e=2,!0))}function de(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new x}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,c=a===void 0?!0:a;return function(p){var l,f,u,d=0,y=!1,b=!1,D=function(){f==null||f.unsubscribe(),f=void 0},Q=function(){D(),l=u=void 0,y=b=!1},J=function(){var C=l;Q(),C==null||C.unsubscribe()};return g(function(C,ct){d++,!b&&!y&&D();var Ve=u=u!=null?u:r();ct.add(function(){d--,d===0&&!b&&!y&&(f=jr(J,c))}),Ve.subscribe(ct),!l&&d>0&&(l=new it({next:function(Fe){return Ve.next(Fe)},error:function(Fe){b=!0,D(),f=jr(Q,n,Fe),Ve.error(Fe)},complete:function(){y=!0,D(),f=jr(Q,s),Ve.complete()}}),F(C).subscribe(l))})(p)}}function jr(e,t){for(var r=[],o=2;oe.next(document)),e}function W(e,t=document){return Array.from(t.querySelectorAll(e))}function U(e,t=document){let r=ce(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ce(e,t=document){return t.querySelector(e)||void 0}function Ie(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}var ca=L(h(document.body,"focusin"),h(document.body,"focusout")).pipe(ye(1),q(void 0),m(()=>Ie()||document.body),Z(1));function vt(e){return ca.pipe(m(t=>e.contains(t)),X())}function qo(e,t){return L(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?ye(t):pe,q(!1))}function Ue(e){return{x:e.offsetLeft,y:e.offsetTop}}function Ko(e){return L(h(window,"load"),h(window,"resize")).pipe(Le(0,ge),m(()=>Ue(e)),q(Ue(e)))}function ir(e){return{x:e.scrollLeft,y:e.scrollTop}}function et(e){return L(h(e,"scroll"),h(window,"resize")).pipe(Le(0,ge),m(()=>ir(e)),q(ir(e)))}function Qo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Qo(e,r)}function S(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Qo(o,n);return o}function ar(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function gt(e){let t=S("script",{src:e});return H(()=>(document.head.appendChild(t),L(h(t,"load"),h(t,"error").pipe(w(()=>kr(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),A(()=>document.head.removeChild(t)),ue(1))))}var Yo=new x,pa=H(()=>typeof ResizeObserver=="undefined"?gt("https://unpkg.com/resize-observer-polyfill"):R(void 0)).pipe(m(()=>new ResizeObserver(e=>{for(let t of e)Yo.next(t)})),w(e=>L(Ke,R(e)).pipe(A(()=>e.disconnect()))),Z(1));function le(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Se(e){return pa.pipe(T(t=>t.observe(e)),w(t=>Yo.pipe(v(({target:r})=>r===e),A(()=>t.unobserve(e)),m(()=>le(e)))),q(le(e)))}function xt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function sr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var Bo=new x,la=H(()=>R(new IntersectionObserver(e=>{for(let t of e)Bo.next(t)},{threshold:0}))).pipe(w(e=>L(Ke,R(e)).pipe(A(()=>e.disconnect()))),Z(1));function yt(e){return la.pipe(T(t=>t.observe(e)),w(t=>Bo.pipe(v(({target:r})=>r===e),A(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function Go(e,t=16){return et(e).pipe(m(({y:r})=>{let o=le(e),n=xt(e);return r>=n.height-o.height-t}),X())}var cr={drawer:U("[data-md-toggle=drawer]"),search:U("[data-md-toggle=search]")};function Jo(e){return cr[e].checked}function Ye(e,t){cr[e].checked!==t&&cr[e].click()}function Ne(e){let t=cr[e];return h(t,"change").pipe(m(()=>t.checked),q(t.checked))}function ma(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function fa(){return L(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(q(!1))}function Xo(){let e=h(window,"keydown").pipe(v(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:Jo("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),v(({mode:t,type:r})=>{if(t==="global"){let o=Ie();if(typeof o!="undefined")return!ma(o,r)}return!0}),de());return fa().pipe(w(t=>t?M:e))}function me(){return new URL(location.href)}function st(e,t=!1){if(G("navigation.instant")&&!t){let r=S("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function Zo(){return new x}function en(){return location.hash.slice(1)}function pr(e){let t=S("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function ua(e){return L(h(window,"hashchange"),e).pipe(m(en),q(en()),v(t=>t.length>0),Z(1))}function tn(e){return ua(e).pipe(m(t=>ce(`[id="${t}"]`)),v(t=>typeof t!="undefined"))}function At(e){let t=matchMedia(e);return nr(r=>t.addListener(()=>r(t.matches))).pipe(q(t.matches))}function rn(){let e=matchMedia("print");return L(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(q(e.matches))}function Dr(e,t){return e.pipe(w(r=>r?t():M))}function lr(e,t){return new I(r=>{let o=new XMLHttpRequest;o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network Error"))}),o.addEventListener("abort",()=>{r.error(new Error("Request aborted"))}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let i=Number(o.getResponseHeader("Content-Length"))||0;t.progress$.next(n.loaded/i*100)}}),t.progress$.next(5)),o.send()})}function De(e,t){return lr(e,t).pipe(w(r=>r.text()),m(r=>JSON.parse(r)),Z(1))}function on(e,t){let r=new DOMParser;return lr(e,t).pipe(w(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),Z(1))}function nn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function an(){return L(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(nn),q(nn()))}function sn(){return{width:innerWidth,height:innerHeight}}function cn(){return h(window,"resize",{passive:!0}).pipe(m(sn),q(sn()))}function pn(){return B([an(),cn()]).pipe(m(([e,t])=>({offset:e,size:t})),Z(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(te("size")),n=B([o,r]).pipe(m(()=>Ue(e)));return B([r,t,n]).pipe(m(([{height:i},{offset:s,size:a},{x:c,y:p}])=>({offset:{x:s.x-c,y:s.y-p+i},size:a})))}function da(e){return h(e,"message",t=>t.data)}function ha(e){let t=new x;return t.subscribe(r=>e.postMessage(r)),t}function ln(e,t=new Worker(e)){let r=da(t),o=ha(t),n=new x;n.subscribe(o);let i=o.pipe(ee(),oe(!0));return n.pipe(ee(),Re(r.pipe(j(i))),de())}var ba=U("#__config"),Et=JSON.parse(ba.textContent);Et.base=`${new URL(Et.base,me())}`;function he(){return Et}function G(e){return Et.features.includes(e)}function we(e,t){return typeof t!="undefined"?Et.translations[e].replace("#",t.toString()):Et.translations[e]}function Oe(e,t=document){return U(`[data-md-component=${e}]`,t)}function ne(e,t=document){return W(`[data-md-component=${e}]`,t)}function va(e){let t=U(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>U(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function mn(e){if(!G("announce.dismiss")||!e.childElementCount)return M;if(!e.hidden){let t=U(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return H(()=>{let t=new x;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),va(e).pipe(T(r=>t.next(r)),A(()=>t.complete()),m(r=>P({ref:e},r)))})}function ga(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function fn(e,t){let r=new x;return r.subscribe(({hidden:o})=>{e.hidden=o}),ga(e,t).pipe(T(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))}function Ct(e,t){return t==="inline"?S("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},S("div",{class:"md-tooltip__inner md-typeset"})):S("div",{class:"md-tooltip",id:e,role:"tooltip"},S("div",{class:"md-tooltip__inner md-typeset"}))}function un(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return S("aside",{class:"md-annotation",tabIndex:0},Ct(t),S("a",{href:r,class:"md-annotation__index",tabIndex:-1},S("span",{"data-md-annotation-id":e})))}else return S("aside",{class:"md-annotation",tabIndex:0},Ct(t),S("span",{class:"md-annotation__index",tabIndex:-1},S("span",{"data-md-annotation-id":e})))}function dn(e){return S("button",{class:"md-clipboard md-icon",title:we("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function Vr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(c=>!e.terms[c]).reduce((c,p)=>[...c,S("del",null,p)," "],[]).slice(0,-1),i=he(),s=new URL(e.location,i.base);G("search.highlight")&&s.searchParams.set("h",Object.entries(e.terms).filter(([,c])=>c).reduce((c,[p])=>`${c} ${p}`.trim(),""));let{tags:a}=he();return S("a",{href:`${s}`,class:"md-search-result__link",tabIndex:-1},S("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&S("div",{class:"md-search-result__icon md-icon"}),r>0&&S("h1",null,e.title),r<=0&&S("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&e.tags.map(c=>{let p=a?c in a?`md-tag-icon md-tag--${a[c]}`:"md-tag-icon":"";return S("span",{class:`md-tag ${p}`},c)}),o>0&&n.length>0&&S("p",{class:"md-search-result__terms"},we("search.result.term.missing"),": ",...n)))}function hn(e){let t=e[0].score,r=[...e],o=he(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),s=r.findIndex(l=>l.scoreVr(l,1)),...c.length?[S("details",{class:"md-search-result__more"},S("summary",{tabIndex:-1},S("div",null,c.length>0&&c.length===1?we("search.result.more.one"):we("search.result.more.other",c.length))),...c.map(l=>Vr(l,1)))]:[]];return S("li",{class:"md-search-result__item"},p)}function bn(e){return S("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>S("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?ar(r):r)))}function zr(e){let t=`tabbed-control tabbed-control--${e}`;return S("div",{class:t,hidden:!0},S("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function vn(e){return S("div",{class:"md-typeset__scrollwrap"},S("div",{class:"md-typeset__table"},e))}function xa(e){let t=he(),r=new URL(`../${e.version}/`,t.base);return S("li",{class:"md-version__item"},S("a",{href:`${r}`,class:"md-version__link"},e.title))}function gn(e,t){return S("div",{class:"md-version"},S("button",{class:"md-version__current","aria-label":we("select.version")},t.title),S("ul",{class:"md-version__list"},e.map(xa)))}var ya=0;function Ea(e,t){document.body.append(e);let{width:r}=le(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=sr(t),n=typeof o!="undefined"?et(o):R({x:0,y:0}),i=L(vt(t),qo(t)).pipe(X());return B([i,n]).pipe(m(([s,a])=>{let{x:c,y:p}=Ue(t),l=le(t),f=t.closest("table");return f&&t.parentElement&&(c+=f.offsetLeft+t.parentElement.offsetLeft,p+=f.offsetTop+t.parentElement.offsetTop),{active:s,offset:{x:c-a.x+l.width/2-r/2,y:p-a.y+l.height+8}}}))}function Be(e){let t=e.title;if(!t.length)return M;let r=`__tooltip_${ya++}`,o=Ct(r,"inline"),n=U(".md-typeset",o);return n.innerHTML=t,H(()=>{let i=new x;return i.subscribe({next({offset:s}){o.style.setProperty("--md-tooltip-x",`${s.x}px`),o.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),L(i.pipe(v(({active:s})=>s)),i.pipe(ye(250),v(({active:s})=>!s))).subscribe({next({active:s}){s?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Le(16,ge)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(_t(125,ge),v(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?o.style.setProperty("--md-tooltip-0",`${-s}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Ea(o,e).pipe(T(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))}).pipe(qe(ie))}function wa(e,t){let r=H(()=>B([Ko(e),et(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:s,height:a}=le(e);return{x:o-i.x+s/2,y:n-i.y+a/2}}));return vt(e).pipe(w(o=>r.pipe(m(n=>({active:o,offset:n})),ue(+!o||1/0))))}function xn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return H(()=>{let i=new x,s=i.pipe(ee(),oe(!0));return i.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),yt(e).pipe(j(s)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),L(i.pipe(v(({active:a})=>a)),i.pipe(ye(250),v(({active:a})=>!a))).subscribe({next({active:a}){a?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Le(16,ge)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(_t(125,ge),v(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(j(s),v(a=>!(a.metaKey||a.ctrlKey))).subscribe(a=>{a.stopPropagation(),a.preventDefault()}),h(n,"mousedown").pipe(j(s),ae(i)).subscribe(([a,{active:c}])=>{var p;if(a.button!==0||a.metaKey||a.ctrlKey)a.preventDefault();else if(c){a.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(p=Ie())==null||p.blur()}}),r.pipe(j(s),v(a=>a===o),Qe(125)).subscribe(()=>e.focus()),wa(e,t).pipe(T(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function Ta(e){return e.tagName==="CODE"?W(".c, .c1, .cm",e):[e]}function Sa(e){let t=[];for(let r of Ta(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let s;for(;s=/(\(\d+\))(!)?/.exec(i.textContent);){let[,a,c]=s;if(typeof c=="undefined"){let p=i.splitText(s.index);i=p.splitText(a.length),t.push(p)}else{i.textContent=a,t.push(i);break}}}}return t}function yn(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,s=new Map;for(let a of Sa(t)){let[,c]=a.textContent.match(/\((\d+)\)/);ce(`:scope > li:nth-child(${c})`,e)&&(s.set(c,un(c,i)),a.replaceWith(s.get(c)))}return s.size===0?M:H(()=>{let a=new x,c=a.pipe(ee(),oe(!0)),p=[];for(let[l,f]of s)p.push([U(".md-typeset",f),U(`:scope > li:nth-child(${l})`,e)]);return o.pipe(j(c)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of p)l?yn(f,u):yn(u,f)}),L(...[...s].map(([,l])=>xn(l,t,{target$:r}))).pipe(A(()=>a.complete()),de())})}function En(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return En(t)}}function wn(e,t){return H(()=>{let r=En(e);return typeof r!="undefined"?fr(r,e,t):M})}var Tn=jt(Kr());var Oa=0;function Sn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Sn(t)}}function Ma(e){return Se(e).pipe(m(({width:t})=>({scrollable:xt(e).width>t})),te("scrollable"))}function On(e,t){let{matches:r}=matchMedia("(hover)"),o=H(()=>{let n=new x,i=n.pipe(Rr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let s=[];if(Tn.default.isSupported()&&(e.closest(".copy")||G("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Oa++}`;let p=dn(c.id);c.insertBefore(p,e),G("content.tooltips")&&s.push(Be(p))}let a=e.closest(".highlight");if(a instanceof HTMLElement){let c=Sn(a);if(typeof c!="undefined"&&(a.classList.contains("annotate")||G("content.code.annotate"))){let p=fr(c,e,t);s.push(Se(a).pipe(j(i),m(({width:l,height:f})=>l&&f),X(),w(l=>l?p:M)))}}return Ma(e).pipe(T(c=>n.next(c)),A(()=>n.complete()),m(c=>P({ref:e},c)),Re(...s))});return G("content.lazy")?yt(e).pipe(v(n=>n),ue(1),w(()=>o)):o}function La(e,{target$:t,print$:r}){let o=!0;return L(t.pipe(m(n=>n.closest("details:not([open])")),v(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(v(n=>n||!o),T(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Mn(e,t){return H(()=>{let r=new x;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),La(e,t).pipe(T(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}var Ln=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Qr,Aa=0;function Ca(){return typeof mermaid=="undefined"||mermaid instanceof Element?gt("https://unpkg.com/mermaid@10.6.1/dist/mermaid.min.js"):R(void 0)}function _n(e){return e.classList.remove("mermaid"),Qr||(Qr=Ca().pipe(T(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Ln,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),Z(1))),Qr.subscribe(()=>no(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Aa++}`,r=S("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),s=r.attachShadow({mode:"closed"});s.innerHTML=n,e.replaceWith(r),i==null||i(s)})),Qr.pipe(m(()=>({ref:e})))}var An=S("table");function Cn(e){return e.replaceWith(An),An.replaceWith(vn(e)),R({ref:e})}function ka(e){let t=e.find(r=>r.checked)||e[0];return L(...e.map(r=>h(r,"change").pipe(m(()=>U(`label[for="${r.id}"]`))))).pipe(q(U(`label[for="${t.id}"]`)),m(r=>({active:r})))}function kn(e,{viewport$:t,target$:r}){let o=U(".tabbed-labels",e),n=W(":scope > input",e),i=zr("prev");e.append(i);let s=zr("next");return e.append(s),H(()=>{let a=new x,c=a.pipe(ee(),oe(!0));B([a,Se(e)]).pipe(j(c),Le(1,ge)).subscribe({next([{active:p},l]){let f=Ue(p),{width:u}=le(p);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=ir(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),B([et(o),Se(o)]).pipe(j(c)).subscribe(([p,l])=>{let f=xt(o);i.hidden=p.x<16,s.hidden=p.x>f.width-l.width-16}),L(h(i,"click").pipe(m(()=>-1)),h(s,"click").pipe(m(()=>1))).pipe(j(c)).subscribe(p=>{let{width:l}=le(o);o.scrollBy({left:l*p,behavior:"smooth"})}),r.pipe(j(c),v(p=>n.includes(p))).subscribe(p=>p.click()),o.classList.add("tabbed-labels--linked");for(let p of n){let l=U(`label[for="${p.id}"]`);l.replaceChildren(S("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(j(c),v(f=>!(f.metaKey||f.ctrlKey)),T(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return G("content.tabs.link")&&a.pipe(Ee(1),ae(t)).subscribe(([{active:p},{offset:l}])=>{let f=p.innerText.trim();if(p.hasAttribute("data-md-switching"))p.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let y of W("[data-tabs]"))for(let b of W(":scope > input",y)){let D=U(`label[for="${b.id}"]`);if(D!==p&&D.innerText.trim()===f){D.setAttribute("data-md-switching",""),b.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),a.pipe(j(c)).subscribe(()=>{for(let p of W("audio, video",e))p.pause()}),ka(n).pipe(T(p=>a.next(p)),A(()=>a.complete()),m(p=>P({ref:e},p)))}).pipe(qe(ie))}function Hn(e,{viewport$:t,target$:r,print$:o}){return L(...W(".annotate:not(.highlight)",e).map(n=>wn(n,{target$:r,print$:o})),...W("pre:not(.mermaid) > code",e).map(n=>On(n,{target$:r,print$:o})),...W("pre.mermaid",e).map(n=>_n(n)),...W("table:not([class])",e).map(n=>Cn(n)),...W("details",e).map(n=>Mn(n,{target$:r,print$:o})),...W("[data-tabs]",e).map(n=>kn(n,{viewport$:t,target$:r})),...W("[title]",e).filter(()=>G("content.tooltips")).map(n=>Be(n)))}function Ha(e,{alert$:t}){return t.pipe(w(r=>L(R(!0),R(!1).pipe(Qe(2e3))).pipe(m(o=>({message:r,active:o})))))}function $n(e,t){let r=U(".md-typeset",e);return H(()=>{let o=new x;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Ha(e,t).pipe(T(n=>o.next(n)),A(()=>o.complete()),m(n=>P({ref:e},n)))})}function $a({viewport$:e}){if(!G("header.autohide"))return R(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Ce(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),X()),o=Ne("search");return B([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),X(),w(n=>n?r:R(!1)),q(!1))}function Pn(e,t){return H(()=>B([Se(e),$a(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),X((r,o)=>r.height===o.height&&r.hidden===o.hidden),Z(1))}function Rn(e,{header$:t,main$:r}){return H(()=>{let o=new x,n=o.pipe(ee(),oe(!0));o.pipe(te("active"),Ze(t)).subscribe(([{active:s},{hidden:a}])=>{e.classList.toggle("md-header--shadow",s&&!a),e.hidden=a});let i=fe(W("[title]",e)).pipe(v(()=>G("content.tooltips")),re(s=>Be(s)));return r.subscribe(o),t.pipe(j(n),m(s=>P({ref:e},s)),Re(i.pipe(j(n))))})}function Pa(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=le(e);return{active:o>=n}}),te("active"))}function In(e,t){return H(()=>{let r=new x;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=ce(".md-content h1");return typeof o=="undefined"?M:Pa(o,t).pipe(T(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))})}function Fn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),X()),n=o.pipe(w(()=>Se(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),te("bottom"))));return B([o,n,t]).pipe(m(([i,{top:s,bottom:a},{offset:{y:c},size:{height:p}}])=>(p=Math.max(0,p-Math.max(0,s-c,i)-Math.max(0,p+c-a)),{offset:s-i,height:p,active:s-i<=c})),X((i,s)=>i.offset===s.offset&&i.height===s.height&&i.active===s.active))}function Ra(e){let t=__md_get("__palette")||{index:e.findIndex(r=>matchMedia(r.getAttribute("data-md-color-media")).matches)};return R(...e).pipe(re(r=>h(r,"change").pipe(m(()=>r))),q(e[Math.max(0,t.index)]),m(r=>({index:e.indexOf(r),color:{media:r.getAttribute("data-md-color-media"),scheme:r.getAttribute("data-md-color-scheme"),primary:r.getAttribute("data-md-color-primary"),accent:r.getAttribute("data-md-color-accent")}})),Z(1))}function jn(e){let t=W("input",e),r=S("meta",{name:"theme-color"});document.head.appendChild(r);let o=S("meta",{name:"color-scheme"});document.head.appendChild(o);let n=At("(prefers-color-scheme: light)");return H(()=>{let i=new x;return i.subscribe(s=>{if(document.body.setAttribute("data-md-color-switching",""),s.color.media==="(prefers-color-scheme)"){let a=matchMedia("(prefers-color-scheme: light)"),c=document.querySelector(a.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");s.color.scheme=c.getAttribute("data-md-color-scheme"),s.color.primary=c.getAttribute("data-md-color-primary"),s.color.accent=c.getAttribute("data-md-color-accent")}for(let[a,c]of Object.entries(s.color))document.body.setAttribute(`data-md-color-${a}`,c);for(let a=0;a{let s=Oe("header"),a=window.getComputedStyle(s);return o.content=a.colorScheme,a.backgroundColor.match(/\d+/g).map(c=>(+c).toString(16).padStart(2,"0")).join("")})).subscribe(s=>r.content=`#${s}`),i.pipe(Me(ie)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),Ra(t).pipe(j(n.pipe(Ee(1))),at(),T(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))})}function Wn(e,{progress$:t}){return H(()=>{let r=new x;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(T(o=>r.next({value:o})),A(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Yr=jt(Kr());function Ia(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Un({alert$:e}){Yr.default.isSupported()&&new I(t=>{new Yr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Ia(U(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(T(t=>{t.trigger.focus()}),m(()=>we("clipboard.copied"))).subscribe(e)}function Fa(e){if(e.length<2)return[""];let[t,r]=[...e].sort((n,i)=>n.length-i.length).map(n=>n.replace(/[^/]+$/,"")),o=0;if(t===r)o=t.length;else for(;t.charCodeAt(o)===r.charCodeAt(o);)o++;return e.map(n=>n.replace(t.slice(0,o),""))}function ur(e){let t=__md_get("__sitemap",sessionStorage,e);if(t)return R(t);{let r=he();return on(new URL("sitemap.xml",e||r.base)).pipe(m(o=>Fa(W("loc",o).map(n=>n.textContent))),xe(()=>M),$e([]),T(o=>__md_set("__sitemap",o,sessionStorage,e)))}}function Nn(e){let t=ce("[rel=canonical]",e);typeof t!="undefined"&&(t.href=t.href.replace("//localhost:","//127.0.0.1:"));let r=new Map;for(let o of W(":scope > *",e)){let n=o.outerHTML;for(let i of["href","src"]){let s=o.getAttribute(i);if(s===null)continue;let a=new URL(s,t==null?void 0:t.href),c=o.cloneNode();c.setAttribute(i,`${a}`),n=c.outerHTML;break}r.set(n,o)}return r}function Dn({location$:e,viewport$:t,progress$:r}){let o=he();if(location.protocol==="file:")return M;let n=ur().pipe(m(l=>l.map(f=>`${new URL(f,o.base)}`))),i=h(document.body,"click").pipe(ae(n),w(([l,f])=>{if(!(l.target instanceof Element))return M;let u=l.target.closest("a");if(u===null)return M;if(u.target||l.metaKey||l.ctrlKey)return M;let d=new URL(u.href);return d.search=d.hash="",f.includes(`${d}`)?(l.preventDefault(),R(new URL(u.href))):M}),de());i.pipe(ue(1)).subscribe(()=>{let l=ce("link[rel=icon]");typeof l!="undefined"&&(l.href=l.href)}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),i.pipe(ae(t)).subscribe(([l,{offset:f}])=>{history.scrollRestoration="manual",history.replaceState(f,""),history.pushState(null,"",l)}),i.subscribe(e);let s=e.pipe(q(me()),te("pathname"),Ee(1),w(l=>lr(l,{progress$:r}).pipe(xe(()=>(st(l,!0),M))))),a=new DOMParser,c=s.pipe(w(l=>l.text()),w(l=>{let f=a.parseFromString(l,"text/html");for(let b of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...G("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let D=ce(b),Q=ce(b,f);typeof D!="undefined"&&typeof Q!="undefined"&&D.replaceWith(Q)}let u=Nn(document.head),d=Nn(f.head);for(let[b,D]of d)D.getAttribute("rel")==="stylesheet"||D.hasAttribute("src")||(u.has(b)?u.delete(b):document.head.appendChild(D));for(let b of u.values())b.getAttribute("rel")==="stylesheet"||b.hasAttribute("src")||b.remove();let y=Oe("container");return We(W("script",y)).pipe(w(b=>{let D=f.createElement("script");if(b.src){for(let Q of b.getAttributeNames())D.setAttribute(Q,b.getAttribute(Q));return b.replaceWith(D),new I(Q=>{D.onload=()=>Q.complete()})}else return D.textContent=b.textContent,b.replaceWith(D),M}),ee(),oe(f))}),de());return h(window,"popstate").pipe(m(me)).subscribe(e),e.pipe(q(me()),Ce(2,1),v(([l,f])=>l.pathname===f.pathname&&l.hash!==f.hash),m(([,l])=>l)).subscribe(l=>{var f,u;history.state!==null||!l.hash?window.scrollTo(0,(u=(f=history.state)==null?void 0:f.y)!=null?u:0):(history.scrollRestoration="auto",pr(l.hash),history.scrollRestoration="manual")}),e.pipe(Ir(i),q(me()),Ce(2,1),v(([l,f])=>l.pathname===f.pathname&&l.hash===f.hash),m(([,l])=>l)).subscribe(l=>{history.scrollRestoration="auto",pr(l.hash),history.scrollRestoration="manual",history.back()}),c.pipe(ae(e)).subscribe(([,l])=>{var f,u;history.state!==null||!l.hash?window.scrollTo(0,(u=(f=history.state)==null?void 0:f.y)!=null?u:0):pr(l.hash)}),t.pipe(te("offset"),ye(100)).subscribe(({offset:l})=>{history.replaceState(l,"")}),c}var qn=jt(zn());function Kn(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,s)=>`${i}${s}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return s=>(0,qn.default)(s).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function Ht(e){return e.type===1}function dr(e){return e.type===3}function Qn(e,t){let r=ln(e);return L(R(location.protocol!=="file:"),Ne("search")).pipe(Pe(o=>o),w(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:G("search.suggest")}}})),r}function Yn({document$:e}){let t=he(),r=De(new URL("../versions.json",t.base)).pipe(xe(()=>M)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:s,aliases:a})=>s===i||a.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),w(n=>h(document.body,"click").pipe(v(i=>!i.metaKey&&!i.ctrlKey),ae(o),w(([i,s])=>{if(i.target instanceof Element){let a=i.target.closest("a");if(a&&!a.target&&n.has(a.href)){let c=a.href;return!i.target.closest(".md-version")&&n.get(c)===s?M:(i.preventDefault(),R(c))}}return M}),w(i=>{let{version:s}=n.get(i);return ur(new URL(i)).pipe(m(a=>{let p=me().href.replace(t.base,"");return a.includes(p.split("#")[0])?new URL(`../${s}/${p}`,t.base):new URL(i)}))})))).subscribe(n=>st(n,!0)),B([r,o]).subscribe(([n,i])=>{U(".md-header__topic").appendChild(gn(n,i))}),e.pipe(w(()=>o)).subscribe(n=>{var s;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let a=((s=t.version)==null?void 0:s.default)||"latest";Array.isArray(a)||(a=[a]);e:for(let c of a)for(let p of n.aliases.concat(n.version))if(new RegExp(c,"i").test(p)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let a of ne("outdated"))a.hidden=!1})}function Da(e,{worker$:t}){let{searchParams:r}=me();r.has("q")&&(Ye("search",!0),e.value=r.get("q"),e.focus(),Ne("search").pipe(Pe(i=>!i)).subscribe(()=>{let i=me();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=vt(e),n=L(t.pipe(Pe(Ht)),h(e,"keyup"),o).pipe(m(()=>e.value),X());return B([n,o]).pipe(m(([i,s])=>({value:i,focus:s})),Z(1))}function Bn(e,{worker$:t}){let r=new x,o=r.pipe(ee(),oe(!0));B([t.pipe(Pe(Ht)),r],(i,s)=>s).pipe(te("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(te("focus")).subscribe(({focus:i})=>{i&&Ye("search",i)}),h(e.form,"reset").pipe(j(o)).subscribe(()=>e.focus());let n=U("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),Da(e,{worker$:t}).pipe(T(i=>r.next(i)),A(()=>r.complete()),m(i=>P({ref:e},i)),Z(1))}function Gn(e,{worker$:t,query$:r}){let o=new x,n=Go(e.parentElement).pipe(v(Boolean)),i=e.parentElement,s=U(":scope > :first-child",e),a=U(":scope > :last-child",e);Ne("search").subscribe(l=>a.setAttribute("role",l?"list":"presentation")),o.pipe(ae(r),Wr(t.pipe(Pe(Ht)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:s.textContent=f.length?we("search.result.none"):we("search.result.placeholder");break;case 1:s.textContent=we("search.result.one");break;default:let u=ar(l.length);s.textContent=we("search.result.other",u)}});let c=o.pipe(T(()=>a.innerHTML=""),w(({items:l})=>L(R(...l.slice(0,10)),R(...l.slice(10)).pipe(Ce(4),Nr(n),w(([f])=>f)))),m(hn),de());return c.subscribe(l=>a.appendChild(l)),c.pipe(re(l=>{let f=ce("details",l);return typeof f=="undefined"?M:h(f,"toggle").pipe(j(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(v(dr),m(({data:l})=>l)).pipe(T(l=>o.next(l)),A(()=>o.complete()),m(l=>P({ref:e},l)))}function Va(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=me();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function Jn(e,t){let r=new x,o=r.pipe(ee(),oe(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(j(o)).subscribe(n=>n.preventDefault()),Va(e,t).pipe(T(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))}function Xn(e,{worker$:t,keyboard$:r}){let o=new x,n=Oe("search-query"),i=L(h(n,"keydown"),h(n,"focus")).pipe(Me(ie),m(()=>n.value),X());return o.pipe(Ze(i),m(([{suggest:a},c])=>{let p=c.split(/([\s-]+)/);if(a!=null&&a.length&&p[p.length-1]){let l=a[a.length-1];l.startsWith(p[p.length-1])&&(p[p.length-1]=l)}else p.length=0;return p})).subscribe(a=>e.innerHTML=a.join("").replace(/\s/g," ")),r.pipe(v(({mode:a})=>a==="search")).subscribe(a=>{switch(a.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(v(dr),m(({data:a})=>a)).pipe(T(a=>o.next(a)),A(()=>o.complete()),m(()=>({ref:e})))}function Zn(e,{index$:t,keyboard$:r}){let o=he();try{let n=Qn(o.search,t),i=Oe("search-query",e),s=Oe("search-result",e);h(e,"click").pipe(v(({target:c})=>c instanceof Element&&!!c.closest("a"))).subscribe(()=>Ye("search",!1)),r.pipe(v(({mode:c})=>c==="search")).subscribe(c=>{let p=Ie();switch(c.type){case"Enter":if(p===i){let l=new Map;for(let f of W(":first-child [href]",s)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}c.claim()}break;case"Escape":case"Tab":Ye("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof p=="undefined")i.focus();else{let l=[i,...W(":not(details) > [href], summary, details[open] [href]",s)],f=Math.max(0,(Math.max(0,l.indexOf(p))+l.length+(c.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}c.claim();break;default:i!==Ie()&&i.focus()}}),r.pipe(v(({mode:c})=>c==="global")).subscribe(c=>{switch(c.type){case"f":case"s":case"/":i.focus(),i.select(),c.claim();break}});let a=Bn(i,{worker$:n});return L(a,Gn(s,{worker$:n,query$:a})).pipe(Re(...ne("search-share",e).map(c=>Jn(c,{query$:a})),...ne("search-suggest",e).map(c=>Xn(c,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ke}}function ei(e,{index$:t,location$:r}){return B([t,r.pipe(q(me()),v(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>Kn(o.config)(n.searchParams.get("h"))),m(o=>{var s;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let a=i.nextNode();a;a=i.nextNode())if((s=a.parentElement)!=null&&s.offsetHeight){let c=a.textContent,p=o(c);p.length>c.length&&n.set(a,p)}for(let[a,c]of n){let{childNodes:p}=S("span",null,c);a.replaceWith(...Array.from(p))}return{ref:e,nodes:n}}))}function za(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return B([r,t]).pipe(m(([{offset:i,height:s},{offset:{y:a}}])=>(s=s+Math.min(n,Math.max(0,a-i))-n,{height:s,locked:a>=i+n})),X((i,s)=>i.height===s.height&&i.locked===s.locked))}function Br(e,o){var n=o,{header$:t}=n,r=oo(n,["header$"]);let i=U(".md-sidebar__scrollwrap",e),{y:s}=Ue(i);return H(()=>{let a=new x,c=a.pipe(ee(),oe(!0)),p=a.pipe(Le(0,ge));return p.pipe(ae(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*s}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),p.pipe(Pe()).subscribe(()=>{for(let l of W(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=le(f);f.scrollTo({top:u-d/2})}}}),fe(W("label[tabindex]",e)).pipe(re(l=>h(l,"click").pipe(Me(ie),m(()=>l),j(c)))).subscribe(l=>{let f=U(`[id="${l.htmlFor}"]`);U(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),za(e,r).pipe(T(l=>a.next(l)),A(()=>a.complete()),m(l=>P({ref:e},l)))})}function ti(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return Lt(De(`${r}/releases/latest`).pipe(xe(()=>M),m(o=>({version:o.tag_name})),$e({})),De(r).pipe(xe(()=>M),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),$e({}))).pipe(m(([o,n])=>P(P({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return De(r).pipe(m(o=>({repositories:o.public_repos})),$e({}))}}function ri(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return De(r).pipe(xe(()=>M),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),$e({}))}function oi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return ti(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return ri(r,o)}return M}var qa;function Ka(e){return qa||(qa=H(()=>{let t=__md_get("__source",sessionStorage);if(t)return R(t);if(ne("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return M}return oi(e.href).pipe(T(o=>__md_set("__source",o,sessionStorage)))}).pipe(xe(()=>M),v(t=>Object.keys(t).length>0),m(t=>({facts:t})),Z(1)))}function ni(e){let t=U(":scope > :last-child",e);return H(()=>{let r=new x;return r.subscribe(({facts:o})=>{t.appendChild(bn(o)),t.classList.add("md-source__repository--active")}),Ka(e).pipe(T(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function Qa(e,{viewport$:t,header$:r}){return Se(document.body).pipe(w(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),te("hidden"))}function ii(e,t){return H(()=>{let r=new x;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(G("navigation.tabs.sticky")?R({hidden:!1}):Qa(e,t)).pipe(T(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function Ya(e,{viewport$:t,header$:r}){let o=new Map,n=W("[href^=\\#]",e);for(let a of n){let c=decodeURIComponent(a.hash.substring(1)),p=ce(`[id="${c}"]`);typeof p!="undefined"&&o.set(a,p)}let i=r.pipe(te("height"),m(({height:a})=>{let c=Oe("main"),p=U(":scope > :first-child",c);return a+.8*(p.offsetTop-c.offsetTop)}),de());return Se(document.body).pipe(te("height"),w(a=>H(()=>{let c=[];return R([...o].reduce((p,[l,f])=>{for(;c.length&&o.get(c[c.length-1]).tagName>=f.tagName;)c.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return p.set([...c=[...c,l]].reverse(),u)},new Map))}).pipe(m(c=>new Map([...c].sort(([,p],[,l])=>p-l))),Ze(i),w(([c,p])=>t.pipe(Fr(([l,f],{offset:{y:u},size:d})=>{let y=u+d.height>=Math.floor(a.height);for(;f.length;){let[,b]=f[0];if(b-p=u&&!y)f=[l.pop(),...f];else break}return[l,f]},[[],[...c]]),X((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([a,c])=>({prev:a.map(([p])=>p),next:c.map(([p])=>p)})),q({prev:[],next:[]}),Ce(2,1),m(([a,c])=>a.prev.length{let i=new x,s=i.pipe(ee(),oe(!0));if(i.subscribe(({prev:a,next:c})=>{for(let[p]of c)p.classList.remove("md-nav__link--passed"),p.classList.remove("md-nav__link--active");for(let[p,[l]]of a.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",p===a.length-1)}),G("toc.follow")){let a=L(t.pipe(ye(1),m(()=>{})),t.pipe(ye(250),m(()=>"smooth")));i.pipe(v(({prev:c})=>c.length>0),Ze(o.pipe(Me(ie))),ae(a)).subscribe(([[{prev:c}],p])=>{let[l]=c[c.length-1];if(l.offsetHeight){let f=sr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=le(f);f.scrollTo({top:u-d/2,behavior:p})}}})}return G("navigation.tracking")&&t.pipe(j(s),te("offset"),ye(250),Ee(1),j(n.pipe(Ee(1))),at({delay:250}),ae(i)).subscribe(([,{prev:a}])=>{let c=me(),p=a[a.length-1];if(p&&p.length){let[l]=p,{hash:f}=new URL(l.href);c.hash!==f&&(c.hash=f,history.replaceState({},"",`${c}`))}else c.hash="",history.replaceState({},"",`${c}`)}),Ya(e,{viewport$:t,header$:r}).pipe(T(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function Ba(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:s}})=>s),Ce(2,1),m(([s,a])=>s>a&&a>0),X()),i=r.pipe(m(({active:s})=>s));return B([i,n]).pipe(m(([s,a])=>!(s&&a)),X(),j(o.pipe(Ee(1))),oe(!0),at({delay:250}),m(s=>({hidden:s})))}function si(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new x,s=i.pipe(ee(),oe(!0));return i.subscribe({next({hidden:a}){e.hidden=a,a?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(j(s),te("height")).subscribe(({height:a})=>{e.style.top=`${a+16}px`}),h(e,"click").subscribe(a=>{a.preventDefault(),window.scrollTo({top:0})}),Ba(e,{viewport$:t,main$:o,target$:n}).pipe(T(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))}function ci({document$:e}){e.pipe(w(()=>W(".md-ellipsis")),re(t=>yt(t).pipe(j(e.pipe(Ee(1))),v(r=>r),m(()=>t),ue(1))),v(t=>t.offsetWidth{let r=t.innerText,o=t.closest("a")||t;return o.title=r,Be(o).pipe(j(e.pipe(Ee(1))),A(()=>o.removeAttribute("title")))})).subscribe(),e.pipe(w(()=>W(".md-status")),re(t=>Be(t))).subscribe()}function pi({document$:e,tablet$:t}){e.pipe(w(()=>W(".md-toggle--indeterminate")),T(r=>{r.indeterminate=!0,r.checked=!1}),re(r=>h(r,"change").pipe(Ur(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ae(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function Ga(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function li({document$:e}){e.pipe(w(()=>W("[data-md-scrollfix]")),T(t=>t.removeAttribute("data-md-scrollfix")),v(Ga),re(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function mi({viewport$:e,tablet$:t}){B([Ne("search"),t]).pipe(m(([r,o])=>r&&!o),w(r=>R(r).pipe(Qe(r?400:100))),ae(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function Ja(){return location.protocol==="file:"?gt(`${new URL("search/search_index.js",Gr.base)}`).pipe(m(()=>__index),Z(1)):De(new URL("search/search_index.json",Gr.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var rt=zo(),Pt=Zo(),wt=tn(Pt),Jr=Xo(),_e=pn(),hr=At("(min-width: 960px)"),ui=At("(min-width: 1220px)"),di=rn(),Gr=he(),hi=document.forms.namedItem("search")?Ja():Ke,Xr=new x;Un({alert$:Xr});var Zr=new x;G("navigation.instant")&&Dn({location$:Pt,viewport$:_e,progress$:Zr}).subscribe(rt);var fi;((fi=Gr.version)==null?void 0:fi.provider)==="mike"&&Yn({document$:rt});L(Pt,wt).pipe(Qe(125)).subscribe(()=>{Ye("drawer",!1),Ye("search",!1)});Jr.pipe(v(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=ce("link[rel=prev]");typeof t!="undefined"&&st(t);break;case"n":case".":let r=ce("link[rel=next]");typeof r!="undefined"&&st(r);break;case"Enter":let o=Ie();o instanceof HTMLLabelElement&&o.click()}});ci({document$:rt});pi({document$:rt,tablet$:hr});li({document$:rt});mi({viewport$:_e,tablet$:hr});var tt=Pn(Oe("header"),{viewport$:_e}),$t=rt.pipe(m(()=>Oe("main")),w(e=>Fn(e,{viewport$:_e,header$:tt})),Z(1)),Xa=L(...ne("consent").map(e=>fn(e,{target$:wt})),...ne("dialog").map(e=>$n(e,{alert$:Xr})),...ne("header").map(e=>Rn(e,{viewport$:_e,header$:tt,main$:$t})),...ne("palette").map(e=>jn(e)),...ne("progress").map(e=>Wn(e,{progress$:Zr})),...ne("search").map(e=>Zn(e,{index$:hi,keyboard$:Jr})),...ne("source").map(e=>ni(e))),Za=H(()=>L(...ne("announce").map(e=>mn(e)),...ne("content").map(e=>Hn(e,{viewport$:_e,target$:wt,print$:di})),...ne("content").map(e=>G("search.highlight")?ei(e,{index$:hi,location$:Pt}):M),...ne("header-title").map(e=>In(e,{viewport$:_e,header$:tt})),...ne("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Dr(ui,()=>Br(e,{viewport$:_e,header$:tt,main$:$t})):Dr(hr,()=>Br(e,{viewport$:_e,header$:tt,main$:$t}))),...ne("tabs").map(e=>ii(e,{viewport$:_e,header$:tt})),...ne("toc").map(e=>ai(e,{viewport$:_e,header$:tt,main$:$t,target$:wt})),...ne("top").map(e=>si(e,{viewport$:_e,header$:tt,main$:$t,target$:wt})))),bi=rt.pipe(w(()=>Za),Re(Xa),Z(1));bi.subscribe();window.document$=rt;window.location$=Pt;window.target$=wt;window.keyboard$=Jr;window.viewport$=_e;window.tablet$=hr;window.screen$=ui;window.print$=di;window.alert$=Xr;window.progress$=Zr;window.component$=bi;})(); +//# sourceMappingURL=bundle.d7c377c4.min.js.map + diff --git a/v6.0.0-beta01/assets/javascripts/bundle.d7c377c4.min.js.map b/v6.0.0-beta01/assets/javascripts/bundle.d7c377c4.min.js.map new file mode 100644 index 000000000..a57d388af --- /dev/null +++ b/v6.0.0-beta01/assets/javascripts/bundle.d7c377c4.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/rxjs/node_modules/tslib/tslib.es6.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/sample.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an \n * \n *\n * */\n\n.aspect-ratio {\n height: 0;\n position: relative;\n}\n\n.aspect-ratio--16x9 { padding-bottom: 56.25%; }\n.aspect-ratio--9x16 { padding-bottom: 177.77%; }\n\n.aspect-ratio--4x3 { padding-bottom: 75%; }\n.aspect-ratio--3x4 { padding-bottom: 133.33%; }\n\n.aspect-ratio--6x4 { padding-bottom: 66.6%; }\n.aspect-ratio--4x6 { padding-bottom: 150%; }\n\n.aspect-ratio--8x5 { padding-bottom: 62.5%; }\n.aspect-ratio--5x8 { padding-bottom: 160%; }\n\n.aspect-ratio--7x5 { padding-bottom: 71.42%; }\n.aspect-ratio--5x7 { padding-bottom: 140%; }\n\n.aspect-ratio--1x1 { padding-bottom: 100%; }\n\n.aspect-ratio--object {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n}\n\n@media #{$breakpoint-not-small}{\n .aspect-ratio-ns {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-ns { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-ns { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-ns { padding-bottom: 75%; }\n .aspect-ratio--3x4-ns { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-ns { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-ns { padding-bottom: 150%; }\n .aspect-ratio--8x5-ns { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-ns { padding-bottom: 160%; }\n .aspect-ratio--7x5-ns { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-ns { padding-bottom: 140%; }\n .aspect-ratio--1x1-ns { padding-bottom: 100%; }\n .aspect-ratio--object-ns {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n@media #{$breakpoint-medium}{\n .aspect-ratio-m {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-m { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-m { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-m { padding-bottom: 75%; }\n .aspect-ratio--3x4-m { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-m { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-m { padding-bottom: 150%; }\n .aspect-ratio--8x5-m { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-m { padding-bottom: 160%; }\n .aspect-ratio--7x5-m { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-m { padding-bottom: 140%; }\n .aspect-ratio--1x1-m { padding-bottom: 100%; }\n .aspect-ratio--object-m {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n@media #{$breakpoint-large}{\n .aspect-ratio-l {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-l { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-l { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-l { padding-bottom: 75%; }\n .aspect-ratio--3x4-l { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-l { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-l { padding-bottom: 150%; }\n .aspect-ratio--8x5-l { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-l { padding-bottom: 160%; }\n .aspect-ratio--7x5-l { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-l { padding-bottom: 140%; }\n .aspect-ratio--1x1-l { padding-bottom: 100%; }\n .aspect-ratio--object-l {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n IMAGES\n Docs: http://tachyons.io/docs/elements/images/\n\n*/\n\n/* Responsive images! */\n\nimg { max-width: 100%; }\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BACKGROUND SIZE\n Docs: http://tachyons.io/docs/themes/background-size/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/*\n Often used in combination with background image set as an inline style\n on an html element.\n*/\n\n .cover { background-size: cover!important; }\n .contain { background-size: contain!important; }\n\n@media #{$breakpoint-not-small} {\n .cover-ns { background-size: cover!important; }\n .contain-ns { background-size: contain!important; }\n}\n\n@media #{$breakpoint-medium} {\n .cover-m { background-size: cover!important; }\n .contain-m { background-size: contain!important; }\n}\n\n@media #{$breakpoint-large} {\n .cover-l { background-size: cover!important; }\n .contain-l { background-size: contain!important; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BACKGROUND POSITION\n\n Base:\n bg = background\n\n Modifiers:\n -center = center center\n -top = top center\n -right = center right\n -bottom = bottom center\n -left = center left\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.bg-center { \n background-repeat: no-repeat;\n background-position: center center; \n}\n\n.bg-top { \n background-repeat: no-repeat; \n background-position: top center; \n}\n\n.bg-right { \n background-repeat: no-repeat; \n background-position: center right; \n}\n\n.bg-bottom { \n background-repeat: no-repeat; \n background-position: bottom center; \n}\n\n.bg-left { \n background-repeat: no-repeat; \n background-position: center left; \n}\n\n@media #{$breakpoint-not-small} {\n .bg-center-ns { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-ns { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-ns { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-ns { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-ns { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n\n@media #{$breakpoint-medium} {\n .bg-center-m { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-m { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-m { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-m { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-m { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n\n@media #{$breakpoint-large} {\n .bg-center-l { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-l { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-l { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-l { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-l { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OUTLINES\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.outline { outline: 1px solid; }\n.outline-transparent { outline: 1px solid transparent; }\n.outline-0 { outline: 0; }\n\n@media #{$breakpoint-not-small} {\n .outline-ns { outline: 1px solid; }\n .outline-transparent-ns { outline: 1px solid transparent; }\n .outline-0-ns { outline: 0; }\n}\n\n@media #{$breakpoint-medium} {\n .outline-m { outline: 1px solid; }\n .outline-transparent-m { outline: 1px solid transparent; }\n .outline-0-m { outline: 0; }\n}\n\n@media #{$breakpoint-large} {\n .outline-l { outline: 1px solid; }\n .outline-transparent-l { outline: 1px solid transparent; }\n .outline-0-l { outline: 0; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDERS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Base:\n b = border\n\n Modifiers:\n a = all\n t = top\n r = right\n b = bottom\n l = left\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .ba { border-style: solid; border-width: 1px; }\n .bt { border-top-style: solid; border-top-width: 1px; }\n .br { border-right-style: solid; border-right-width: 1px; }\n .bb { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl { border-left-style: solid; border-left-width: 1px; }\n .bn { border-style: none; border-width: 0; }\n\n\n@media #{$breakpoint-not-small} {\n .ba-ns { border-style: solid; border-width: 1px; }\n .bt-ns { border-top-style: solid; border-top-width: 1px; }\n .br-ns { border-right-style: solid; border-right-width: 1px; }\n .bb-ns { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-ns { border-left-style: solid; border-left-width: 1px; }\n .bn-ns { border-style: none; border-width: 0; }\n}\n\n@media #{$breakpoint-medium} {\n .ba-m { border-style: solid; border-width: 1px; }\n .bt-m { border-top-style: solid; border-top-width: 1px; }\n .br-m { border-right-style: solid; border-right-width: 1px; }\n .bb-m { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-m { border-left-style: solid; border-left-width: 1px; }\n .bn-m { border-style: none; border-width: 0; }\n}\n\n@media #{$breakpoint-large} {\n .ba-l { border-style: solid; border-width: 1px; }\n .bt-l { border-top-style: solid; border-top-width: 1px; }\n .br-l { border-right-style: solid; border-right-width: 1px; }\n .bb-l { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-l { border-left-style: solid; border-left-width: 1px; }\n .bn-l { border-style: none; border-width: 0; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER COLORS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Border colors can be used to extend the base\n border classes ba,bt,bb,br,bl found in the _borders.css file.\n\n The base border class by default will set the color of the border\n to that of the current text color. These classes are for the cases\n where you desire for the text and border colors to be different.\n\n Base:\n b = border\n\n Modifiers:\n --color-name = each color variable name is also a border color name\n\n*/\n\n.b--black { border-color: $black; }\n.b--near-black { border-color: $near-black; }\n.b--dark-gray { border-color: $dark-gray; }\n.b--mid-gray { border-color: $mid-gray; }\n.b--gray { border-color: $gray; }\n.b--silver { border-color: $silver; }\n.b--light-silver { border-color: $light-silver; }\n.b--moon-gray { border-color: $moon-gray; }\n.b--light-gray { border-color: $light-gray; }\n.b--near-white { border-color: $near-white; }\n.b--white { border-color: $white; }\n\n.b--white-90 { border-color: $white-90; }\n.b--white-80 { border-color: $white-80; }\n.b--white-70 { border-color: $white-70; }\n.b--white-60 { border-color: $white-60; }\n.b--white-50 { border-color: $white-50; }\n.b--white-40 { border-color: $white-40; }\n.b--white-30 { border-color: $white-30; }\n.b--white-20 { border-color: $white-20; }\n.b--white-10 { border-color: $white-10; }\n.b--white-05 { border-color: $white-05; }\n.b--white-025 { border-color: $white-025; }\n.b--white-0125 { border-color: $white-0125; }\n\n.b--black-90 { border-color: $black-90; }\n.b--black-80 { border-color: $black-80; }\n.b--black-70 { border-color: $black-70; }\n.b--black-60 { border-color: $black-60; }\n.b--black-50 { border-color: $black-50; }\n.b--black-40 { border-color: $black-40; }\n.b--black-30 { border-color: $black-30; }\n.b--black-20 { border-color: $black-20; }\n.b--black-10 { border-color: $black-10; }\n.b--black-05 { border-color: $black-05; }\n.b--black-025 { border-color: $black-025; }\n.b--black-0125 { border-color: $black-0125; }\n\n.b--dark-red { border-color: $dark-red; }\n.b--red { border-color: $red; }\n.b--light-red { border-color: $light-red; }\n.b--orange { border-color: $orange; }\n.b--gold { border-color: $gold; }\n.b--yellow { border-color: $yellow; }\n.b--light-yellow { border-color: $light-yellow; }\n.b--purple { border-color: $purple; }\n.b--light-purple { border-color: $light-purple; }\n.b--dark-pink { border-color: $dark-pink; }\n.b--hot-pink { border-color: $hot-pink; }\n.b--pink { border-color: $pink; }\n.b--light-pink { border-color: $light-pink; }\n.b--dark-green { border-color: $dark-green; }\n.b--green { border-color: $green; }\n.b--light-green { border-color: $light-green; }\n.b--navy { border-color: $navy; }\n.b--dark-blue { border-color: $dark-blue; }\n.b--blue { border-color: $blue; }\n.b--light-blue { border-color: $light-blue; }\n.b--lightest-blue { border-color: $lightest-blue; }\n.b--washed-blue { border-color: $washed-blue; }\n.b--washed-green { border-color: $washed-green; }\n.b--washed-yellow { border-color: $washed-yellow; }\n.b--washed-red { border-color: $washed-red; }\n\n.b--transparent { border-color: $transparent; }\n.b--inherit { border-color: inherit; }\n","\n// Converted Variables\n\n$sans-serif: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, helvetica, 'helvetica neue', ubuntu, roboto, noto, 'segoe ui', arial, sans-serif !default;\n$serif: georgia, serif !default;\n$code: consolas, monaco, monospace !default;\n$font-size-headline: 6rem !default;\n$font-size-subheadline: 5rem !default;\n$font-size-1: 3rem !default;\n$font-size-2: 2.25rem !default;\n$font-size-3: 1.5rem !default;\n$font-size-4: 1.25rem !default;\n$font-size-5: 1rem !default;\n$font-size-6: .875rem !default;\n$font-size-7: .75rem !default;\n$letter-spacing-tight: -.05em !default;\n$letter-spacing-1: .1em !default;\n$letter-spacing-2: .25em !default;\n$line-height-solid: 1 !default;\n$line-height-title: 1.25 !default;\n$line-height-copy: 1.5 !default;\n$measure: 30em !default;\n$measure-narrow: 20em !default;\n$measure-wide: 34em !default;\n$spacing-none: 0 !default;\n$spacing-extra-small: .25rem !default;\n$spacing-small: .5rem !default;\n$spacing-medium: 1rem !default;\n$spacing-large: 2rem !default;\n$spacing-extra-large: 4rem !default;\n$spacing-extra-extra-large: 8rem !default;\n$spacing-extra-extra-extra-large: 16rem !default;\n$spacing-copy-separator: 1.5em !default;\n$height-1: 1rem !default;\n$height-2: 2rem !default;\n$height-3: 4rem !default;\n$height-4: 8rem !default;\n$height-5: 16rem !default;\n$width-1: 1rem !default;\n$width-2: 2rem !default;\n$width-3: 4rem !default;\n$width-4: 8rem !default;\n$width-5: 16rem !default;\n$max-width-1: 1rem !default;\n$max-width-2: 2rem !default;\n$max-width-3: 4rem !default;\n$max-width-4: 8rem !default;\n$max-width-5: 16rem !default;\n$max-width-6: 32rem !default;\n$max-width-7: 48rem !default;\n$max-width-8: 64rem !default;\n$max-width-9: 96rem !default;\n$border-radius-none: 0 !default;\n$border-radius-1: .125rem !default;\n$border-radius-2: .25rem !default;\n$border-radius-3: .5rem !default;\n$border-radius-4: 1rem !default;\n$border-radius-circle: 100% !default;\n$border-radius-pill: 9999px !default;\n$border-width-none: 0 !default;\n$border-width-1: .125rem !default;\n$border-width-2: .25rem !default;\n$border-width-3: .5rem !default;\n$border-width-4: 1rem !default;\n$border-width-5: 2rem !default;\n$box-shadow-1: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-2: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-3: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-4: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-5: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ) !default;\n$black: #000 !default;\n$near-black: #111 !default;\n$dark-gray: #333 !default;\n$mid-gray: #555 !default;\n$gray: #777 !default;\n$silver: #999 !default;\n$light-silver: #aaa !default;\n$moon-gray: #ccc !default;\n$light-gray: #eee !default;\n$near-white: #f4f4f4 !default;\n$white: #fff !default;\n$transparent: transparent !default;\n$black-90: rgba(0,0,0,.9) !default;\n$black-80: rgba(0,0,0,.8) !default;\n$black-70: rgba(0,0,0,.7) !default;\n$black-60: rgba(0,0,0,.6) !default;\n$black-50: rgba(0,0,0,.5) !default;\n$black-40: rgba(0,0,0,.4) !default;\n$black-30: rgba(0,0,0,.3) !default;\n$black-20: rgba(0,0,0,.2) !default;\n$black-10: rgba(0,0,0,.1) !default;\n$black-05: rgba(0,0,0,.05) !default;\n$black-025: rgba(0,0,0,.025) !default;\n$black-0125: rgba(0,0,0,.0125) !default;\n$white-90: rgba(255,255,255,.9) !default;\n$white-80: rgba(255,255,255,.8) !default;\n$white-70: rgba(255,255,255,.7) !default;\n$white-60: rgba(255,255,255,.6) !default;\n$white-50: rgba(255,255,255,.5) !default;\n$white-40: rgba(255,255,255,.4) !default;\n$white-30: rgba(255,255,255,.3) !default;\n$white-20: rgba(255,255,255,.2) !default;\n$white-10: rgba(255,255,255,.1) !default;\n$white-05: rgba(255,255,255,.05) !default;\n$white-025: rgba(255,255,255,.025) !default;\n$white-0125: rgba(255,255,255,.0125) !default;\n$dark-red: #e7040f !default;\n$red: #ff4136 !default;\n$light-red: #ff725c !default;\n$orange: #ff6300 !default;\n$gold: #ffb700 !default;\n$yellow: #ffd700 !default;\n$light-yellow: #fbf1a9 !default;\n$purple: #5e2ca5 !default;\n$light-purple: #a463f2 !default;\n$dark-pink: #d5008f !default;\n$hot-pink: #ff41b4 !default;\n$pink: #ff80cc !default;\n$light-pink: #ffa3d7 !default;\n$dark-green: #137752 !default;\n$green: #19a974 !default;\n$light-green: #9eebcf !default;\n$navy: #001b44 !default;\n$dark-blue: #00449e !default;\n$blue: #357edd !default;\n$light-blue: #96ccff !default;\n$lightest-blue: #cdecff !default;\n$washed-blue: #f6fffe !default;\n$washed-green: #e8fdf5 !default;\n$washed-yellow: #fffceb !default;\n$washed-red: #ffdfdf !default;\n\n// Custom Media Query Variables\n\n$breakpoint-not-small: 'screen and (min-width: 30em)' !default;\n$breakpoint-medium: 'screen and (min-width: 30em) and (max-width: 60em)' !default;\n$breakpoint-large: 'screen and (min-width: 60em)' !default;\n\n/*\n\n VARIABLES\n\n*/\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER RADIUS\n Docs: http://tachyons.io/docs/themes/border-radius/\n\n Base:\n br = border-radius\n\n Modifiers:\n 0 = 0/none\n 1 = 1st step in scale\n 2 = 2nd step in scale\n 3 = 3rd step in scale\n 4 = 4th step in scale\n\n Literal values:\n -100 = 100%\n -pill = 9999px\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .br0 { border-radius: $border-radius-none }\n .br1 { border-radius: $border-radius-1; }\n .br2 { border-radius: $border-radius-2; }\n .br3 { border-radius: $border-radius-3; }\n .br4 { border-radius: $border-radius-4; }\n .br-100 { border-radius: $border-radius-circle; }\n .br-pill { border-radius: $border-radius-pill; }\n .br--bottom {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n@media #{$breakpoint-not-small} {\n .br0-ns { border-radius: $border-radius-none }\n .br1-ns { border-radius: $border-radius-1; }\n .br2-ns { border-radius: $border-radius-2; }\n .br3-ns { border-radius: $border-radius-3; }\n .br4-ns { border-radius: $border-radius-4; }\n .br-100-ns { border-radius: $border-radius-circle; }\n .br-pill-ns { border-radius: $border-radius-pill; }\n .br--bottom-ns {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-ns {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-ns {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-ns {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n@media #{$breakpoint-medium} {\n .br0-m { border-radius: $border-radius-none }\n .br1-m { border-radius: $border-radius-1; }\n .br2-m { border-radius: $border-radius-2; }\n .br3-m { border-radius: $border-radius-3; }\n .br4-m { border-radius: $border-radius-4; }\n .br-100-m { border-radius: $border-radius-circle; }\n .br-pill-m { border-radius: $border-radius-pill; }\n .br--bottom-m {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-m {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-m {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-m {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n@media #{$breakpoint-large} {\n .br0-l { border-radius: $border-radius-none }\n .br1-l { border-radius: $border-radius-1; }\n .br2-l { border-radius: $border-radius-2; }\n .br3-l { border-radius: $border-radius-3; }\n .br4-l { border-radius: $border-radius-4; }\n .br-100-l { border-radius: $border-radius-circle; }\n .br-pill-l { border-radius: $border-radius-pill; }\n .br--bottom-l {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-l {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-l {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-l {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER STYLES\n Docs: http://tachyons.io/docs/themes/borders/\n\n Depends on base border module in _borders.css\n\n Base:\n b = border-style\n\n Modifiers:\n --none = none\n --dotted = dotted\n --dashed = dashed\n --solid = solid\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.b--dotted { border-style: dotted; }\n.b--dashed { border-style: dashed; }\n.b--solid { border-style: solid; }\n.b--none { border-style: none; }\n\n@media #{$breakpoint-not-small} {\n .b--dotted-ns { border-style: dotted; }\n .b--dashed-ns { border-style: dashed; }\n .b--solid-ns { border-style: solid; }\n .b--none-ns { border-style: none; }\n}\n\n@media #{$breakpoint-medium} {\n .b--dotted-m { border-style: dotted; }\n .b--dashed-m { border-style: dashed; }\n .b--solid-m { border-style: solid; }\n .b--none-m { border-style: none; }\n}\n\n@media #{$breakpoint-large} {\n .b--dotted-l { border-style: dotted; }\n .b--dashed-l { border-style: dashed; }\n .b--solid-l { border-style: solid; }\n .b--none-l { border-style: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER WIDTHS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Base:\n bw = border-width\n\n Modifiers:\n 0 = 0 width border\n 1 = 1st step in border-width scale\n 2 = 2nd step in border-width scale\n 3 = 3rd step in border-width scale\n 4 = 4th step in border-width scale\n 5 = 5th step in border-width scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.bw0 { border-width: $border-width-none; }\n.bw1 { border-width: $border-width-1; }\n.bw2 { border-width: $border-width-2; }\n.bw3 { border-width: $border-width-3; }\n.bw4 { border-width: $border-width-4; }\n.bw5 { border-width: $border-width-5; }\n\n/* Resets */\n.bt-0 { border-top-width: $border-width-none }\n.br-0 { border-right-width: $border-width-none }\n.bb-0 { border-bottom-width: $border-width-none }\n.bl-0 { border-left-width: $border-width-none }\n\n@media #{$breakpoint-not-small} {\n .bw0-ns { border-width: $border-width-none; }\n .bw1-ns { border-width: $border-width-1; }\n .bw2-ns { border-width: $border-width-2; }\n .bw3-ns { border-width: $border-width-3; }\n .bw4-ns { border-width: $border-width-4; }\n .bw5-ns { border-width: $border-width-5; }\n .bt-0-ns { border-top-width: $border-width-none }\n .br-0-ns { border-right-width: $border-width-none }\n .bb-0-ns { border-bottom-width: $border-width-none }\n .bl-0-ns { border-left-width: $border-width-none }\n}\n\n@media #{$breakpoint-medium} {\n .bw0-m { border-width: $border-width-none; }\n .bw1-m { border-width: $border-width-1; }\n .bw2-m { border-width: $border-width-2; }\n .bw3-m { border-width: $border-width-3; }\n .bw4-m { border-width: $border-width-4; }\n .bw5-m { border-width: $border-width-5; }\n .bt-0-m { border-top-width: $border-width-none }\n .br-0-m { border-right-width: $border-width-none }\n .bb-0-m { border-bottom-width: $border-width-none }\n .bl-0-m { border-left-width: $border-width-none }\n}\n\n@media #{$breakpoint-large} {\n .bw0-l { border-width: $border-width-none; }\n .bw1-l { border-width: $border-width-1; }\n .bw2-l { border-width: $border-width-2; }\n .bw3-l { border-width: $border-width-3; }\n .bw4-l { border-width: $border-width-4; }\n .bw5-l { border-width: $border-width-5; }\n .bt-0-l { border-top-width: $border-width-none }\n .br-0-l { border-right-width: $border-width-none }\n .bb-0-l { border-bottom-width: $border-width-none }\n .bl-0-l { border-left-width: $border-width-none }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BOX-SHADOW\n Docs: http://tachyons.io/docs/themes/box-shadow/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.shadow-1 { box-shadow: $box-shadow-1; }\n.shadow-2 { box-shadow: $box-shadow-2; }\n.shadow-3 { box-shadow: $box-shadow-3; }\n.shadow-4 { box-shadow: $box-shadow-4; }\n.shadow-5 { box-shadow: $box-shadow-5; }\n\n@media #{$breakpoint-not-small} {\n .shadow-1-ns { box-shadow: $box-shadow-1; }\n .shadow-2-ns { box-shadow: $box-shadow-2; }\n .shadow-3-ns { box-shadow: $box-shadow-3; }\n .shadow-4-ns { box-shadow: $box-shadow-4; }\n .shadow-5-ns { box-shadow: $box-shadow-5; }\n}\n\n@media #{$breakpoint-medium} {\n .shadow-1-m { box-shadow: $box-shadow-1; }\n .shadow-2-m { box-shadow: $box-shadow-2; }\n .shadow-3-m { box-shadow: $box-shadow-3; }\n .shadow-4-m { box-shadow: $box-shadow-4; }\n .shadow-5-m { box-shadow: $box-shadow-5; }\n}\n\n@media #{$breakpoint-large} {\n .shadow-1-l { box-shadow: $box-shadow-1; }\n .shadow-2-l { box-shadow: $box-shadow-2; }\n .shadow-3-l { box-shadow: $box-shadow-3; }\n .shadow-4-l { box-shadow: $box-shadow-4; }\n .shadow-5-l { box-shadow: $box-shadow-5; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n CODE\n\n*/\n\n.pre {\n overflow-x: auto;\n overflow-y: hidden;\n overflow: scroll;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n COORDINATES\n Docs: http://tachyons.io/docs/layout/position/\n\n Use in combination with the position module.\n\n Base:\n top\n bottom\n right\n left\n\n Modifiers:\n -0 = literal value 0\n -1 = literal value 1\n -2 = literal value 2\n --1 = literal value -1\n --2 = literal value -2\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.top-0 { top: 0; }\n.right-0 { right: 0; }\n.bottom-0 { bottom: 0; }\n.left-0 { left: 0; }\n\n.top-1 { top: 1rem; }\n.right-1 { right: 1rem; }\n.bottom-1 { bottom: 1rem; }\n.left-1 { left: 1rem; }\n\n.top-2 { top: 2rem; }\n.right-2 { right: 2rem; }\n.bottom-2 { bottom: 2rem; }\n.left-2 { left: 2rem; }\n\n.top--1 { top: -1rem; }\n.right--1 { right: -1rem; }\n.bottom--1 { bottom: -1rem; }\n.left--1 { left: -1rem; }\n\n.top--2 { top: -2rem; }\n.right--2 { right: -2rem; }\n.bottom--2 { bottom: -2rem; }\n.left--2 { left: -2rem; }\n\n\n.absolute--fill {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n@media #{$breakpoint-not-small} {\n .top-0-ns { top: 0; }\n .left-0-ns { left: 0; }\n .right-0-ns { right: 0; }\n .bottom-0-ns { bottom: 0; }\n .top-1-ns { top: 1rem; }\n .left-1-ns { left: 1rem; }\n .right-1-ns { right: 1rem; }\n .bottom-1-ns { bottom: 1rem; }\n .top-2-ns { top: 2rem; }\n .left-2-ns { left: 2rem; }\n .right-2-ns { right: 2rem; }\n .bottom-2-ns { bottom: 2rem; }\n .top--1-ns { top: -1rem; }\n .right--1-ns { right: -1rem; }\n .bottom--1-ns { bottom: -1rem; }\n .left--1-ns { left: -1rem; }\n .top--2-ns { top: -2rem; }\n .right--2-ns { right: -2rem; }\n .bottom--2-ns { bottom: -2rem; }\n .left--2-ns { left: -2rem; }\n .absolute--fill-ns {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n@media #{$breakpoint-medium} {\n .top-0-m { top: 0; }\n .left-0-m { left: 0; }\n .right-0-m { right: 0; }\n .bottom-0-m { bottom: 0; }\n .top-1-m { top: 1rem; }\n .left-1-m { left: 1rem; }\n .right-1-m { right: 1rem; }\n .bottom-1-m { bottom: 1rem; }\n .top-2-m { top: 2rem; }\n .left-2-m { left: 2rem; }\n .right-2-m { right: 2rem; }\n .bottom-2-m { bottom: 2rem; }\n .top--1-m { top: -1rem; }\n .right--1-m { right: -1rem; }\n .bottom--1-m { bottom: -1rem; }\n .left--1-m { left: -1rem; }\n .top--2-m { top: -2rem; }\n .right--2-m { right: -2rem; }\n .bottom--2-m { bottom: -2rem; }\n .left--2-m { left: -2rem; }\n .absolute--fill-m {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n@media #{$breakpoint-large} {\n .top-0-l { top: 0; }\n .left-0-l { left: 0; }\n .right-0-l { right: 0; }\n .bottom-0-l { bottom: 0; }\n .top-1-l { top: 1rem; }\n .left-1-l { left: 1rem; }\n .right-1-l { right: 1rem; }\n .bottom-1-l { bottom: 1rem; }\n .top-2-l { top: 2rem; }\n .left-2-l { left: 2rem; }\n .right-2-l { right: 2rem; }\n .bottom-2-l { bottom: 2rem; }\n .top--1-l { top: -1rem; }\n .right--1-l { right: -1rem; }\n .bottom--1-l { bottom: -1rem; }\n .left--1-l { left: -1rem; }\n .top--2-l { top: -2rem; }\n .right--2-l { right: -2rem; }\n .bottom--2-l { bottom: -2rem; }\n .left--2-l { left: -2rem; }\n .absolute--fill-l {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n CLEARFIX\n http://tachyons.io/docs/layout/clearfix/\n\n*/\n\n/* Nicolas Gallaghers Clearfix solution\n Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */\n\n.cf:before,\n.cf:after { content: \" \"; display: table; }\n.cf:after { clear: both; }\n.cf { zoom: 1; }\n\n.cl { clear: left; }\n.cr { clear: right; }\n.cb { clear: both; }\n.cn { clear: none; }\n\n@media #{$breakpoint-not-small} {\n .cl-ns { clear: left; }\n .cr-ns { clear: right; }\n .cb-ns { clear: both; }\n .cn-ns { clear: none; }\n}\n\n@media #{$breakpoint-medium} {\n .cl-m { clear: left; }\n .cr-m { clear: right; }\n .cb-m { clear: both; }\n .cn-m { clear: none; }\n}\n\n@media #{$breakpoint-large} {\n .cl-l { clear: left; }\n .cr-l { clear: right; }\n .cb-l { clear: both; }\n .cn-l { clear: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FLEXBOX\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.flex { display: flex; }\n.inline-flex { display: inline-flex; }\n\n/* 1. Fix for Chrome 44 bug.\n * https://code.google.com/p/chromium/issues/detail?id=506893 */\n.flex-auto {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n}\n\n.flex-none { flex: none; }\n\n.flex-column { flex-direction: column; }\n.flex-row { flex-direction: row; }\n.flex-wrap { flex-wrap: wrap; }\n.flex-nowrap { flex-wrap: nowrap; }\n.flex-wrap-reverse { flex-wrap: wrap-reverse; }\n.flex-column-reverse { flex-direction: column-reverse; }\n.flex-row-reverse { flex-direction: row-reverse; }\n\n.items-start { align-items: flex-start; }\n.items-end { align-items: flex-end; }\n.items-center { align-items: center; }\n.items-baseline { align-items: baseline; }\n.items-stretch { align-items: stretch; }\n\n.self-start { align-self: flex-start; }\n.self-end { align-self: flex-end; }\n.self-center { align-self: center; }\n.self-baseline { align-self: baseline; }\n.self-stretch { align-self: stretch; }\n\n.justify-start { justify-content: flex-start; }\n.justify-end { justify-content: flex-end; }\n.justify-center { justify-content: center; }\n.justify-between { justify-content: space-between; }\n.justify-around { justify-content: space-around; }\n\n.content-start { align-content: flex-start; }\n.content-end { align-content: flex-end; }\n.content-center { align-content: center; }\n.content-between { align-content: space-between; }\n.content-around { align-content: space-around; }\n.content-stretch { align-content: stretch; }\n\n.order-0 { order: 0; }\n.order-1 { order: 1; }\n.order-2 { order: 2; }\n.order-3 { order: 3; }\n.order-4 { order: 4; }\n.order-5 { order: 5; }\n.order-6 { order: 6; }\n.order-7 { order: 7; }\n.order-8 { order: 8; }\n.order-last { order: 99999; }\n\n.flex-grow-0 { flex-grow: 0; }\n.flex-grow-1 { flex-grow: 1; }\n\n.flex-shrink-0 { flex-shrink: 0; }\n.flex-shrink-1 { flex-shrink: 1; }\n\n@media #{$breakpoint-not-small} {\n .flex-ns { display: flex; }\n .inline-flex-ns { display: inline-flex; }\n .flex-auto-ns {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-ns { flex: none; }\n .flex-column-ns { flex-direction: column; }\n .flex-row-ns { flex-direction: row; }\n .flex-wrap-ns { flex-wrap: wrap; }\n .flex-nowrap-ns { flex-wrap: nowrap; }\n .flex-wrap-reverse-ns { flex-wrap: wrap-reverse; }\n .flex-column-reverse-ns { flex-direction: column-reverse; }\n .flex-row-reverse-ns { flex-direction: row-reverse; }\n .items-start-ns { align-items: flex-start; }\n .items-end-ns { align-items: flex-end; }\n .items-center-ns { align-items: center; }\n .items-baseline-ns { align-items: baseline; }\n .items-stretch-ns { align-items: stretch; }\n\n .self-start-ns { align-self: flex-start; }\n .self-end-ns { align-self: flex-end; }\n .self-center-ns { align-self: center; }\n .self-baseline-ns { align-self: baseline; }\n .self-stretch-ns { align-self: stretch; }\n\n .justify-start-ns { justify-content: flex-start; }\n .justify-end-ns { justify-content: flex-end; }\n .justify-center-ns { justify-content: center; }\n .justify-between-ns { justify-content: space-between; }\n .justify-around-ns { justify-content: space-around; }\n\n .content-start-ns { align-content: flex-start; }\n .content-end-ns { align-content: flex-end; }\n .content-center-ns { align-content: center; }\n .content-between-ns { align-content: space-between; }\n .content-around-ns { align-content: space-around; }\n .content-stretch-ns { align-content: stretch; }\n\n .order-0-ns { order: 0; }\n .order-1-ns { order: 1; }\n .order-2-ns { order: 2; }\n .order-3-ns { order: 3; }\n .order-4-ns { order: 4; }\n .order-5-ns { order: 5; }\n .order-6-ns { order: 6; }\n .order-7-ns { order: 7; }\n .order-8-ns { order: 8; }\n .order-last-ns { order: 99999; }\n\n .flex-grow-0-ns { flex-grow: 0; }\n .flex-grow-1-ns { flex-grow: 1; }\n\n .flex-shrink-0-ns { flex-shrink: 0; }\n .flex-shrink-1-ns { flex-shrink: 1; }\n}\n@media #{$breakpoint-medium} {\n .flex-m { display: flex; }\n .inline-flex-m { display: inline-flex; }\n .flex-auto-m {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-m { flex: none; }\n .flex-column-m { flex-direction: column; }\n .flex-row-m { flex-direction: row; }\n .flex-wrap-m { flex-wrap: wrap; }\n .flex-nowrap-m { flex-wrap: nowrap; }\n .flex-wrap-reverse-m { flex-wrap: wrap-reverse; }\n .flex-column-reverse-m { flex-direction: column-reverse; }\n .flex-row-reverse-m { flex-direction: row-reverse; }\n .items-start-m { align-items: flex-start; }\n .items-end-m { align-items: flex-end; }\n .items-center-m { align-items: center; }\n .items-baseline-m { align-items: baseline; }\n .items-stretch-m { align-items: stretch; }\n\n .self-start-m { align-self: flex-start; }\n .self-end-m { align-self: flex-end; }\n .self-center-m { align-self: center; }\n .self-baseline-m { align-self: baseline; }\n .self-stretch-m { align-self: stretch; }\n\n .justify-start-m { justify-content: flex-start; }\n .justify-end-m { justify-content: flex-end; }\n .justify-center-m { justify-content: center; }\n .justify-between-m { justify-content: space-between; }\n .justify-around-m { justify-content: space-around; }\n\n .content-start-m { align-content: flex-start; }\n .content-end-m { align-content: flex-end; }\n .content-center-m { align-content: center; }\n .content-between-m { align-content: space-between; }\n .content-around-m { align-content: space-around; }\n .content-stretch-m { align-content: stretch; }\n\n .order-0-m { order: 0; }\n .order-1-m { order: 1; }\n .order-2-m { order: 2; }\n .order-3-m { order: 3; }\n .order-4-m { order: 4; }\n .order-5-m { order: 5; }\n .order-6-m { order: 6; }\n .order-7-m { order: 7; }\n .order-8-m { order: 8; }\n .order-last-m { order: 99999; }\n\n .flex-grow-0-m { flex-grow: 0; }\n .flex-grow-1-m { flex-grow: 1; }\n\n .flex-shrink-0-m { flex-shrink: 0; }\n .flex-shrink-1-m { flex-shrink: 1; }\n}\n\n@media #{$breakpoint-large} {\n .flex-l { display: flex; }\n .inline-flex-l { display: inline-flex; }\n .flex-auto-l {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-l { flex: none; }\n .flex-column-l { flex-direction: column; }\n .flex-row-l { flex-direction: row; }\n .flex-wrap-l { flex-wrap: wrap; }\n .flex-nowrap-l { flex-wrap: nowrap; }\n .flex-wrap-reverse-l { flex-wrap: wrap-reverse; }\n .flex-column-reverse-l { flex-direction: column-reverse; }\n .flex-row-reverse-l { flex-direction: row-reverse; }\n\n .items-start-l { align-items: flex-start; }\n .items-end-l { align-items: flex-end; }\n .items-center-l { align-items: center; }\n .items-baseline-l { align-items: baseline; }\n .items-stretch-l { align-items: stretch; }\n\n .self-start-l { align-self: flex-start; }\n .self-end-l { align-self: flex-end; }\n .self-center-l { align-self: center; }\n .self-baseline-l { align-self: baseline; }\n .self-stretch-l { align-self: stretch; }\n\n .justify-start-l { justify-content: flex-start; }\n .justify-end-l { justify-content: flex-end; }\n .justify-center-l { justify-content: center; }\n .justify-between-l { justify-content: space-between; }\n .justify-around-l { justify-content: space-around; }\n\n .content-start-l { align-content: flex-start; }\n .content-end-l { align-content: flex-end; }\n .content-center-l { align-content: center; }\n .content-between-l { align-content: space-between; }\n .content-around-l { align-content: space-around; }\n .content-stretch-l { align-content: stretch; }\n\n .order-0-l { order: 0; }\n .order-1-l { order: 1; }\n .order-2-l { order: 2; }\n .order-3-l { order: 3; }\n .order-4-l { order: 4; }\n .order-5-l { order: 5; }\n .order-6-l { order: 6; }\n .order-7-l { order: 7; }\n .order-8-l { order: 8; }\n .order-last-l { order: 99999; }\n\n .flex-grow-0-l { flex-grow: 0; }\n .flex-grow-1-l { flex-grow: 1; }\n\n .flex-shrink-0-l { flex-shrink: 0; }\n .flex-shrink-1-l { flex-shrink: 1; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n DISPLAY\n Docs: http://tachyons.io/docs/layout/display\n\n Base:\n d = display\n\n Modifiers:\n n = none\n b = block\n ib = inline-block\n it = inline-table\n t = table\n tc = table-cell\n tr = table-row\n tcol = table-column\n tcolg = table-column-group\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.dn { display: none; }\n.di { display: inline; }\n.db { display: block; }\n.dib { display: inline-block; }\n.dit { display: inline-table; }\n.dt { display: table; }\n.dtc { display: table-cell; }\n.dt-row { display: table-row; }\n.dt-row-group { display: table-row-group; }\n.dt-column { display: table-column; }\n.dt-column-group { display: table-column-group; }\n\n/*\n This will set table to full width and then\n all cells will be equal width\n*/\n.dt--fixed {\n table-layout: fixed;\n width: 100%;\n}\n\n@media #{$breakpoint-not-small} {\n .dn-ns { display: none; }\n .di-ns { display: inline; }\n .db-ns { display: block; }\n .dib-ns { display: inline-block; }\n .dit-ns { display: inline-table; }\n .dt-ns { display: table; }\n .dtc-ns { display: table-cell; }\n .dt-row-ns { display: table-row; }\n .dt-row-group-ns { display: table-row-group; }\n .dt-column-ns { display: table-column; }\n .dt-column-group-ns { display: table-column-group; }\n\n .dt--fixed-ns {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n@media #{$breakpoint-medium} {\n .dn-m { display: none; }\n .di-m { display: inline; }\n .db-m { display: block; }\n .dib-m { display: inline-block; }\n .dit-m { display: inline-table; }\n .dt-m { display: table; }\n .dtc-m { display: table-cell; }\n .dt-row-m { display: table-row; }\n .dt-row-group-m { display: table-row-group; }\n .dt-column-m { display: table-column; }\n .dt-column-group-m { display: table-column-group; }\n\n .dt--fixed-m {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n@media #{$breakpoint-large} {\n .dn-l { display: none; }\n .di-l { display: inline; }\n .db-l { display: block; }\n .dib-l { display: inline-block; }\n .dit-l { display: inline-table; }\n .dt-l { display: table; }\n .dtc-l { display: table-cell; }\n .dt-row-l { display: table-row; }\n .dt-row-group-l { display: table-row-group; }\n .dt-column-l { display: table-column; }\n .dt-column-group-l { display: table-column-group; }\n\n .dt--fixed-l {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FLOATS\n http://tachyons.io/docs/layout/floats/\n\n 1. Floated elements are automatically rendered as block level elements.\n Setting floats to display inline will fix the double margin bug in\n ie6. You know... just in case.\n\n 2. Don't forget to clearfix your floats with .cf\n\n Base:\n f = float\n\n Modifiers:\n l = left\n r = right\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n.fl { float: left; _display: inline; }\n.fr { float: right; _display: inline; }\n.fn { float: none; }\n\n@media #{$breakpoint-not-small} {\n .fl-ns { float: left; _display: inline; }\n .fr-ns { float: right; _display: inline; }\n .fn-ns { float: none; }\n}\n\n@media #{$breakpoint-medium} {\n .fl-m { float: left; _display: inline; }\n .fr-m { float: right; _display: inline; }\n .fn-m { float: none; }\n}\n\n@media #{$breakpoint-large} {\n .fl-l { float: left; _display: inline; }\n .fr-l { float: right; _display: inline; }\n .fn-l { float: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT FAMILY GROUPS\n Docs: http://tachyons.io/docs/typography/font-family/\n\n*/\n\n\n.sans-serif {\n font-family: $sans-serif;\n}\n\n.serif {\n font-family: $serif;\n}\n\n.system-sans-serif {\n font-family: sans-serif;\n}\n\n.system-serif {\n font-family: serif;\n}\n\n\n/* Monospaced Typefaces (for code) */\n\n/* From http://cssfontstack.com */\ncode, .code {\n font-family: Consolas,\n monaco,\n monospace;\n}\n\n.courier {\n font-family: 'Courier Next',\n courier,\n monospace;\n}\n\n\n/* Sans-Serif Typefaces */\n\n.helvetica {\n font-family: 'helvetica neue', helvetica,\n sans-serif;\n}\n\n.avenir {\n font-family: 'avenir next', avenir,\n sans-serif;\n}\n\n\n/* Serif Typefaces */\n\n.athelas {\n font-family: athelas,\n georgia,\n serif;\n}\n\n.georgia {\n font-family: georgia,\n serif;\n}\n\n.times {\n font-family: times,\n serif;\n}\n\n.bodoni {\n font-family: \"Bodoni MT\",\n serif;\n}\n\n.calisto {\n font-family: \"Calisto MT\",\n serif;\n}\n\n.garamond {\n font-family: garamond,\n serif;\n}\n\n.baskerville {\n font-family: baskerville,\n serif;\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT STYLE\n Docs: http://tachyons.io/docs/typography/font-style/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.i { font-style: italic; }\n.fs-normal { font-style: normal; }\n\n@media #{$breakpoint-not-small} {\n .i-ns { font-style: italic; }\n .fs-normal-ns { font-style: normal; }\n}\n\n@media #{$breakpoint-medium} {\n .i-m { font-style: italic; }\n .fs-normal-m { font-style: normal; }\n}\n\n@media #{$breakpoint-large} {\n .i-l { font-style: italic; }\n .fs-normal-l { font-style: normal; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT WEIGHT\n Docs: http://tachyons.io/docs/typography/font-weight/\n\n Base\n fw = font-weight\n\n Modifiers:\n 1 = literal value 100\n 2 = literal value 200\n 3 = literal value 300\n 4 = literal value 400\n 5 = literal value 500\n 6 = literal value 600\n 7 = literal value 700\n 8 = literal value 800\n 9 = literal value 900\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.normal { font-weight: normal; }\n.b { font-weight: bold; }\n.fw1 { font-weight: 100; }\n.fw2 { font-weight: 200; }\n.fw3 { font-weight: 300; }\n.fw4 { font-weight: 400; }\n.fw5 { font-weight: 500; }\n.fw6 { font-weight: 600; }\n.fw7 { font-weight: 700; }\n.fw8 { font-weight: 800; }\n.fw9 { font-weight: 900; }\n\n\n@media #{$breakpoint-not-small} {\n .normal-ns { font-weight: normal; }\n .b-ns { font-weight: bold; }\n .fw1-ns { font-weight: 100; }\n .fw2-ns { font-weight: 200; }\n .fw3-ns { font-weight: 300; }\n .fw4-ns { font-weight: 400; }\n .fw5-ns { font-weight: 500; }\n .fw6-ns { font-weight: 600; }\n .fw7-ns { font-weight: 700; }\n .fw8-ns { font-weight: 800; }\n .fw9-ns { font-weight: 900; }\n}\n\n@media #{$breakpoint-medium} {\n .normal-m { font-weight: normal; }\n .b-m { font-weight: bold; }\n .fw1-m { font-weight: 100; }\n .fw2-m { font-weight: 200; }\n .fw3-m { font-weight: 300; }\n .fw4-m { font-weight: 400; }\n .fw5-m { font-weight: 500; }\n .fw6-m { font-weight: 600; }\n .fw7-m { font-weight: 700; }\n .fw8-m { font-weight: 800; }\n .fw9-m { font-weight: 900; }\n}\n\n@media #{$breakpoint-large} {\n .normal-l { font-weight: normal; }\n .b-l { font-weight: bold; }\n .fw1-l { font-weight: 100; }\n .fw2-l { font-weight: 200; }\n .fw3-l { font-weight: 300; }\n .fw4-l { font-weight: 400; }\n .fw5-l { font-weight: 500; }\n .fw6-l { font-weight: 600; }\n .fw7-l { font-weight: 700; }\n .fw8-l { font-weight: 800; }\n .fw9-l { font-weight: 900; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FORMS\n \n*/\n\n.input-reset {\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.button-reset::-moz-focus-inner,\n.input-reset::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n HEIGHTS\n Docs: http://tachyons.io/docs/layout/heights/\n\n Base:\n h = height\n min-h = min-height\n min-vh = min-height vertical screen height\n vh = vertical screen height\n\n Modifiers\n 1 = 1st step in height scale\n 2 = 2nd step in height scale\n 3 = 3rd step in height scale\n 4 = 4th step in height scale\n 5 = 5th step in height scale\n\n -25 = literal value 25%\n -50 = literal value 50%\n -75 = literal value 75%\n -100 = literal value 100%\n\n -auto = string value of auto\n -inherit = string value of inherit\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Height Scale */\n\n.h1 { height: $height-1; }\n.h2 { height: $height-2; }\n.h3 { height: $height-3; }\n.h4 { height: $height-4; }\n.h5 { height: $height-5; }\n\n/* Height Percentages - Based off of height of parent */\n\n.h-25 { height: 25%; }\n.h-50 { height: 50%; }\n.h-75 { height: 75%; }\n.h-100 { height: 100%; }\n\n.min-h-100 { min-height: 100%; }\n\n/* Screen Height Percentage */\n\n.vh-25 { height: 25vh; }\n.vh-50 { height: 50vh; }\n.vh-75 { height: 75vh; }\n.vh-100 { height: 100vh; }\n\n.min-vh-100 { min-height: 100vh; }\n\n\n/* String Properties */\n\n.h-auto { height: auto; }\n.h-inherit { height: inherit; }\n\n@media #{$breakpoint-not-small} {\n .h1-ns { height: $height-1; }\n .h2-ns { height: $height-2; }\n .h3-ns { height: $height-3; }\n .h4-ns { height: $height-4; }\n .h5-ns { height: $height-5; }\n .h-25-ns { height: 25%; }\n .h-50-ns { height: 50%; }\n .h-75-ns { height: 75%; }\n .h-100-ns { height: 100%; }\n .min-h-100-ns { min-height: 100%; }\n .vh-25-ns { height: 25vh; }\n .vh-50-ns { height: 50vh; }\n .vh-75-ns { height: 75vh; }\n .vh-100-ns { height: 100vh; }\n .min-vh-100-ns { min-height: 100vh; }\n .h-auto-ns { height: auto; }\n .h-inherit-ns { height: inherit; }\n}\n\n@media #{$breakpoint-medium} {\n .h1-m { height: $height-1; }\n .h2-m { height: $height-2; }\n .h3-m { height: $height-3; }\n .h4-m { height: $height-4; }\n .h5-m { height: $height-5; }\n .h-25-m { height: 25%; }\n .h-50-m { height: 50%; }\n .h-75-m { height: 75%; }\n .h-100-m { height: 100%; }\n .min-h-100-m { min-height: 100%; }\n .vh-25-m { height: 25vh; }\n .vh-50-m { height: 50vh; }\n .vh-75-m { height: 75vh; }\n .vh-100-m { height: 100vh; }\n .min-vh-100-m { min-height: 100vh; }\n .h-auto-m { height: auto; }\n .h-inherit-m { height: inherit; }\n}\n\n@media #{$breakpoint-large} {\n .h1-l { height: $height-1; }\n .h2-l { height: $height-2; }\n .h3-l { height: $height-3; }\n .h4-l { height: $height-4; }\n .h5-l { height: $height-5; }\n .h-25-l { height: 25%; }\n .h-50-l { height: 50%; }\n .h-75-l { height: 75%; }\n .h-100-l { height: 100%; }\n .min-h-100-l { min-height: 100%; }\n .vh-25-l { height: 25vh; }\n .vh-50-l { height: 50vh; }\n .vh-75-l { height: 75vh; }\n .vh-100-l { height: 100vh; }\n .min-vh-100-l { min-height: 100vh; }\n .h-auto-l { height: auto; }\n .h-inherit-l { height: inherit; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LETTER SPACING\n Docs: http://tachyons.io/docs/typography/tracking/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.tracked { letter-spacing: $letter-spacing-1; }\n.tracked-tight { letter-spacing: $letter-spacing-tight; }\n.tracked-mega { letter-spacing: $letter-spacing-2; }\n\n@media #{$breakpoint-not-small} {\n .tracked-ns { letter-spacing: $letter-spacing-1; }\n .tracked-tight-ns { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-ns { letter-spacing: $letter-spacing-2; }\n}\n\n@media #{$breakpoint-medium} {\n .tracked-m { letter-spacing: $letter-spacing-1; }\n .tracked-tight-m { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-m { letter-spacing: $letter-spacing-2; }\n}\n\n@media #{$breakpoint-large} {\n .tracked-l { letter-spacing: $letter-spacing-1; }\n .tracked-tight-l { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-l { letter-spacing: $letter-spacing-2; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LINE HEIGHT / LEADING\n Docs: http://tachyons.io/docs/typography/line-height\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .lh-solid { line-height: $line-height-solid; }\n .lh-title { line-height: $line-height-title; }\n .lh-copy { line-height: $line-height-copy; }\n\n@media #{$breakpoint-not-small} {\n .lh-solid-ns { line-height: $line-height-solid; }\n .lh-title-ns { line-height: $line-height-title; }\n .lh-copy-ns { line-height: $line-height-copy; }\n}\n\n@media #{$breakpoint-medium} {\n .lh-solid-m { line-height: $line-height-solid; }\n .lh-title-m { line-height: $line-height-title; }\n .lh-copy-m { line-height: $line-height-copy; }\n}\n\n@media #{$breakpoint-large} {\n .lh-solid-l { line-height: $line-height-solid; }\n .lh-title-l { line-height: $line-height-title; }\n .lh-copy-l { line-height: $line-height-copy; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LINKS\n Docs: http://tachyons.io/docs/elements/links/\n\n*/\n\n.link {\n text-decoration: none;\n transition: color .15s ease-in;\n}\n\n.link:link,\n.link:visited {\n transition: color .15s ease-in;\n}\n.link:hover {\n transition: color .15s ease-in;\n}\n.link:active {\n transition: color .15s ease-in;\n}\n.link:focus {\n transition: color .15s ease-in;\n outline: 1px dotted currentColor;\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LISTS\n http://tachyons.io/docs/elements/lists/\n\n*/\n\n.list { list-style-type: none; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n MAX WIDTHS\n Docs: http://tachyons.io/docs/layout/max-widths/\n\n Base:\n mw = max-width\n\n Modifiers\n 1 = 1st step in width scale\n 2 = 2nd step in width scale\n 3 = 3rd step in width scale\n 4 = 4th step in width scale\n 5 = 5th step in width scale\n 6 = 6st step in width scale\n 7 = 7nd step in width scale\n 8 = 8rd step in width scale\n 9 = 9th step in width scale\n\n -100 = literal value 100%\n\n -none = string value none\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Max Width Percentages */\n\n.mw-100 { max-width: 100%; }\n\n/* Max Width Scale */\n\n.mw1 { max-width: $max-width-1; }\n.mw2 { max-width: $max-width-2; }\n.mw3 { max-width: $max-width-3; }\n.mw4 { max-width: $max-width-4; }\n.mw5 { max-width: $max-width-5; }\n.mw6 { max-width: $max-width-6; }\n.mw7 { max-width: $max-width-7; }\n.mw8 { max-width: $max-width-8; }\n.mw9 { max-width: $max-width-9; }\n\n/* Max Width String Properties */\n\n.mw-none { max-width: none; }\n\n@media #{$breakpoint-not-small} {\n .mw-100-ns { max-width: 100%; }\n\n .mw1-ns { max-width: $max-width-1; }\n .mw2-ns { max-width: $max-width-2; }\n .mw3-ns { max-width: $max-width-3; }\n .mw4-ns { max-width: $max-width-4; }\n .mw5-ns { max-width: $max-width-5; }\n .mw6-ns { max-width: $max-width-6; }\n .mw7-ns { max-width: $max-width-7; }\n .mw8-ns { max-width: $max-width-8; }\n .mw9-ns { max-width: $max-width-9; }\n\n .mw-none-ns { max-width: none; }\n}\n\n@media #{$breakpoint-medium} {\n .mw-100-m { max-width: 100%; }\n\n .mw1-m { max-width: $max-width-1; }\n .mw2-m { max-width: $max-width-2; }\n .mw3-m { max-width: $max-width-3; }\n .mw4-m { max-width: $max-width-4; }\n .mw5-m { max-width: $max-width-5; }\n .mw6-m { max-width: $max-width-6; }\n .mw7-m { max-width: $max-width-7; }\n .mw8-m { max-width: $max-width-8; }\n .mw9-m { max-width: $max-width-9; }\n\n .mw-none-m { max-width: none; }\n}\n\n@media #{$breakpoint-large} {\n .mw-100-l { max-width: 100%; }\n\n .mw1-l { max-width: $max-width-1; }\n .mw2-l { max-width: $max-width-2; }\n .mw3-l { max-width: $max-width-3; }\n .mw4-l { max-width: $max-width-4; }\n .mw5-l { max-width: $max-width-5; }\n .mw6-l { max-width: $max-width-6; }\n .mw7-l { max-width: $max-width-7; }\n .mw8-l { max-width: $max-width-8; }\n .mw9-l { max-width: $max-width-9; }\n\n .mw-none-l { max-width: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n WIDTHS\n Docs: http://tachyons.io/docs/layout/widths/\n\n Base:\n w = width\n\n Modifiers\n 1 = 1st step in width scale\n 2 = 2nd step in width scale\n 3 = 3rd step in width scale\n 4 = 4th step in width scale\n 5 = 5th step in width scale\n\n -10 = literal value 10%\n -20 = literal value 20%\n -25 = literal value 25%\n -30 = literal value 30%\n -33 = literal value 33%\n -34 = literal value 34%\n -40 = literal value 40%\n -50 = literal value 50%\n -60 = literal value 60%\n -70 = literal value 70%\n -75 = literal value 75%\n -80 = literal value 80%\n -90 = literal value 90%\n -100 = literal value 100%\n\n -third = 100% / 3 (Not supported in opera mini or IE8)\n -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8)\n -auto = string value auto\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n/* Width Scale */\n\n.w1 { width: $width-1; }\n.w2 { width: $width-2; }\n.w3 { width: $width-3; }\n.w4 { width: $width-4; }\n.w5 { width: $width-5; }\n\n.w-10 { width: 10%; }\n.w-20 { width: 20%; }\n.w-25 { width: 25%; }\n.w-30 { width: 30%; }\n.w-33 { width: 33%; }\n.w-34 { width: 34%; }\n.w-40 { width: 40%; }\n.w-50 { width: 50%; }\n.w-60 { width: 60%; }\n.w-70 { width: 70%; }\n.w-75 { width: 75%; }\n.w-80 { width: 80%; }\n.w-90 { width: 90%; }\n.w-100 { width: 100%; }\n\n.w-third { width: (100% / 3); }\n.w-two-thirds { width: (100% / 1.5); }\n.w-auto { width: auto; }\n\n@media #{$breakpoint-not-small} {\n .w1-ns { width: $width-1; }\n .w2-ns { width: $width-2; }\n .w3-ns { width: $width-3; }\n .w4-ns { width: $width-4; }\n .w5-ns { width: $width-5; }\n .w-10-ns { width: 10%; }\n .w-20-ns { width: 20%; }\n .w-25-ns { width: 25%; }\n .w-30-ns { width: 30%; }\n .w-33-ns { width: 33%; }\n .w-34-ns { width: 34%; }\n .w-40-ns { width: 40%; }\n .w-50-ns { width: 50%; }\n .w-60-ns { width: 60%; }\n .w-70-ns { width: 70%; }\n .w-75-ns { width: 75%; }\n .w-80-ns { width: 80%; }\n .w-90-ns { width: 90%; }\n .w-100-ns { width: 100%; }\n .w-third-ns { width: (100% / 3); }\n .w-two-thirds-ns { width: (100% / 1.5); }\n .w-auto-ns { width: auto; }\n}\n\n@media #{$breakpoint-medium} {\n .w1-m { width: $width-1; }\n .w2-m { width: $width-2; }\n .w3-m { width: $width-3; }\n .w4-m { width: $width-4; }\n .w5-m { width: $width-5; }\n .w-10-m { width: 10%; }\n .w-20-m { width: 20%; }\n .w-25-m { width: 25%; }\n .w-30-m { width: 30%; }\n .w-33-m { width: 33%; }\n .w-34-m { width: 34%; }\n .w-40-m { width: 40%; }\n .w-50-m { width: 50%; }\n .w-60-m { width: 60%; }\n .w-70-m { width: 70%; }\n .w-75-m { width: 75%; }\n .w-80-m { width: 80%; }\n .w-90-m { width: 90%; }\n .w-100-m { width: 100%; }\n .w-third-m { width: (100% / 3); }\n .w-two-thirds-m { width: (100% / 1.5); }\n .w-auto-m { width: auto; }\n}\n\n@media #{$breakpoint-large} {\n .w1-l { width: $width-1; }\n .w2-l { width: $width-2; }\n .w3-l { width: $width-3; }\n .w4-l { width: $width-4; }\n .w5-l { width: $width-5; }\n .w-10-l { width: 10%; }\n .w-20-l { width: 20%; }\n .w-25-l { width: 25%; }\n .w-30-l { width: 30%; }\n .w-33-l { width: 33%; }\n .w-34-l { width: 34%; }\n .w-40-l { width: 40%; }\n .w-50-l { width: 50%; }\n .w-60-l { width: 60%; }\n .w-70-l { width: 70%; }\n .w-75-l { width: 75%; }\n .w-80-l { width: 80%; }\n .w-90-l { width: 90%; }\n .w-100-l { width: 100%; }\n .w-third-l { width: (100% / 3); }\n .w-two-thirds-l { width: (100% / 1.5); }\n .w-auto-l { width: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OVERFLOW\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.overflow-visible { overflow: visible; }\n.overflow-hidden { overflow: hidden; }\n.overflow-scroll { overflow: scroll; }\n.overflow-auto { overflow: auto; }\n\n.overflow-x-visible { overflow-x: visible; }\n.overflow-x-hidden { overflow-x: hidden; }\n.overflow-x-scroll { overflow-x: scroll; }\n.overflow-x-auto { overflow-x: auto; }\n\n.overflow-y-visible { overflow-y: visible; }\n.overflow-y-hidden { overflow-y: hidden; }\n.overflow-y-scroll { overflow-y: scroll; }\n.overflow-y-auto { overflow-y: auto; }\n\n@media #{$breakpoint-not-small} {\n .overflow-visible-ns { overflow: visible; }\n .overflow-hidden-ns { overflow: hidden; }\n .overflow-scroll-ns { overflow: scroll; }\n .overflow-auto-ns { overflow: auto; }\n .overflow-x-visible-ns { overflow-x: visible; }\n .overflow-x-hidden-ns { overflow-x: hidden; }\n .overflow-x-scroll-ns { overflow-x: scroll; }\n .overflow-x-auto-ns { overflow-x: auto; }\n\n .overflow-y-visible-ns { overflow-y: visible; }\n .overflow-y-hidden-ns { overflow-y: hidden; }\n .overflow-y-scroll-ns { overflow-y: scroll; }\n .overflow-y-auto-ns { overflow-y: auto; }\n}\n\n@media #{$breakpoint-medium} {\n .overflow-visible-m { overflow: visible; }\n .overflow-hidden-m { overflow: hidden; }\n .overflow-scroll-m { overflow: scroll; }\n .overflow-auto-m { overflow: auto; }\n\n .overflow-x-visible-m { overflow-x: visible; }\n .overflow-x-hidden-m { overflow-x: hidden; }\n .overflow-x-scroll-m { overflow-x: scroll; }\n .overflow-x-auto-m { overflow-x: auto; }\n\n .overflow-y-visible-m { overflow-y: visible; }\n .overflow-y-hidden-m { overflow-y: hidden; }\n .overflow-y-scroll-m { overflow-y: scroll; }\n .overflow-y-auto-m { overflow-y: auto; }\n}\n\n@media #{$breakpoint-large} {\n .overflow-visible-l { overflow: visible; }\n .overflow-hidden-l { overflow: hidden; }\n .overflow-scroll-l { overflow: scroll; }\n .overflow-auto-l { overflow: auto; }\n\n .overflow-x-visible-l { overflow-x: visible; }\n .overflow-x-hidden-l { overflow-x: hidden; }\n .overflow-x-scroll-l { overflow-x: scroll; }\n .overflow-x-auto-l { overflow-x: auto; }\n\n .overflow-y-visible-l { overflow-y: visible; }\n .overflow-y-hidden-l { overflow-y: hidden; }\n .overflow-y-scroll-l { overflow-y: scroll; }\n .overflow-y-auto-l { overflow-y: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n POSITIONING\n Docs: http://tachyons.io/docs/layout/position/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.static { position: static; }\n.relative { position: relative; }\n.absolute { position: absolute; }\n.fixed { position: fixed; }\n\n@media #{$breakpoint-not-small} {\n .static-ns { position: static; }\n .relative-ns { position: relative; }\n .absolute-ns { position: absolute; }\n .fixed-ns { position: fixed; }\n}\n\n@media #{$breakpoint-medium} {\n .static-m { position: static; }\n .relative-m { position: relative; }\n .absolute-m { position: absolute; }\n .fixed-m { position: fixed; }\n}\n\n@media #{$breakpoint-large} {\n .static-l { position: static; }\n .relative-l { position: relative; }\n .absolute-l { position: absolute; }\n .fixed-l { position: fixed; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OPACITY\n Docs: http://tachyons.io/docs/themes/opacity/\n\n*/\n\n.o-100 { opacity: 1; }\n.o-90 { opacity: .9; }\n.o-80 { opacity: .8; }\n.o-70 { opacity: .7; }\n.o-60 { opacity: .6; }\n.o-50 { opacity: .5; }\n.o-40 { opacity: .4; }\n.o-30 { opacity: .3; }\n.o-20 { opacity: .2; }\n.o-10 { opacity: .1; }\n.o-05 { opacity: .05; }\n.o-025 { opacity: .025; }\n.o-0 { opacity: 0; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n ROTATIONS\n\n*/\n\n.rotate-45 { transform: rotate(45deg); }\n.rotate-90 { transform: rotate(90deg); }\n.rotate-135 { transform: rotate(135deg); }\n.rotate-180 { transform: rotate(180deg); }\n.rotate-225 { transform: rotate(225deg); }\n.rotate-270 { transform: rotate(270deg); }\n.rotate-315 { transform: rotate(315deg); }\n\n@media #{$breakpoint-not-small}{\n .rotate-45-ns { transform: rotate(45deg); }\n .rotate-90-ns { transform: rotate(90deg); }\n .rotate-135-ns { transform: rotate(135deg); }\n .rotate-180-ns { transform: rotate(180deg); }\n .rotate-225-ns { transform: rotate(225deg); }\n .rotate-270-ns { transform: rotate(270deg); }\n .rotate-315-ns { transform: rotate(315deg); }\n}\n\n@media #{$breakpoint-medium}{\n .rotate-45-m { transform: rotate(45deg); }\n .rotate-90-m { transform: rotate(90deg); }\n .rotate-135-m { transform: rotate(135deg); }\n .rotate-180-m { transform: rotate(180deg); }\n .rotate-225-m { transform: rotate(225deg); }\n .rotate-270-m { transform: rotate(270deg); }\n .rotate-315-m { transform: rotate(315deg); }\n}\n\n@media #{$breakpoint-large}{\n .rotate-45-l { transform: rotate(45deg); }\n .rotate-90-l { transform: rotate(90deg); }\n .rotate-135-l { transform: rotate(135deg); }\n .rotate-180-l { transform: rotate(180deg); }\n .rotate-225-l { transform: rotate(225deg); }\n .rotate-270-l { transform: rotate(270deg); }\n .rotate-315-l { transform: rotate(315deg); }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n SKINS\n Docs: http://tachyons.io/docs/themes/skins/\n\n Classes for setting foreground and background colors on elements.\n If you haven't declared a border color, but set border on an element, it will\n be set to the current text color.\n\n*/\n\n/* Text colors */\n\n.black-90 { color: $black-90; }\n.black-80 { color: $black-80; }\n.black-70 { color: $black-70; }\n.black-60 { color: $black-60; }\n.black-50 { color: $black-50; }\n.black-40 { color: $black-40; }\n.black-30 { color: $black-30; }\n.black-20 { color: $black-20; }\n.black-10 { color: $black-10; }\n.black-05 { color: $black-05; }\n\n.white-90 { color: $white-90; }\n.white-80 { color: $white-80; }\n.white-70 { color: $white-70; }\n.white-60 { color: $white-60; }\n.white-50 { color: $white-50; }\n.white-40 { color: $white-40; }\n.white-30 { color: $white-30; }\n.white-20 { color: $white-20; }\n.white-10 { color: $white-10; }\n\n.black { color: $black; }\n.near-black { color: $near-black; }\n.dark-gray { color: $dark-gray; }\n.mid-gray { color: $mid-gray; }\n.gray { color: $gray; }\n.silver { color: $silver; }\n.light-silver { color: $light-silver; }\n.moon-gray { color: $moon-gray; }\n.light-gray { color: $light-gray; }\n.near-white { color: $near-white; }\n.white { color: $white; }\n\n.dark-red { color: $dark-red; }\n.red { color: $red; }\n.light-red { color: $light-red; }\n.orange { color: $orange; }\n.gold { color: $gold; }\n.yellow { color: $yellow; }\n.light-yellow { color: $light-yellow; }\n.purple { color: $purple; }\n.light-purple { color: $light-purple; }\n.dark-pink { color: $dark-pink; }\n.hot-pink { color: $hot-pink; }\n.pink { color: $pink; }\n.light-pink { color: $light-pink; }\n.dark-green { color: $dark-green; }\n.green { color: $green; }\n.light-green { color: $light-green; }\n.navy { color: $navy; }\n.dark-blue { color: $dark-blue; }\n.blue { color: $blue; }\n.light-blue { color: $light-blue; }\n.lightest-blue { color: $lightest-blue; }\n.washed-blue { color: $washed-blue; }\n.washed-green { color: $washed-green; }\n.washed-yellow { color: $washed-yellow; }\n.washed-red { color: $washed-red; }\n.color-inherit { color: inherit; }\n\n.bg-black-90 { background-color: $black-90; }\n.bg-black-80 { background-color: $black-80; }\n.bg-black-70 { background-color: $black-70; }\n.bg-black-60 { background-color: $black-60; }\n.bg-black-50 { background-color: $black-50; }\n.bg-black-40 { background-color: $black-40; }\n.bg-black-30 { background-color: $black-30; }\n.bg-black-20 { background-color: $black-20; }\n.bg-black-10 { background-color: $black-10; }\n.bg-black-05 { background-color: $black-05; }\n.bg-white-90 { background-color: $white-90; }\n.bg-white-80 { background-color: $white-80; }\n.bg-white-70 { background-color: $white-70; }\n.bg-white-60 { background-color: $white-60; }\n.bg-white-50 { background-color: $white-50; }\n.bg-white-40 { background-color: $white-40; }\n.bg-white-30 { background-color: $white-30; }\n.bg-white-20 { background-color: $white-20; }\n.bg-white-10 { background-color: $white-10; }\n\n\n\n/* Background colors */\n\n.bg-black { background-color: $black; }\n.bg-near-black { background-color: $near-black; }\n.bg-dark-gray { background-color: $dark-gray; }\n.bg-mid-gray { background-color: $mid-gray; }\n.bg-gray { background-color: $gray; }\n.bg-silver { background-color: $silver; }\n.bg-light-silver { background-color: $light-silver; }\n.bg-moon-gray { background-color: $moon-gray; }\n.bg-light-gray { background-color: $light-gray; }\n.bg-near-white { background-color: $near-white; }\n.bg-white { background-color: $white; }\n.bg-transparent { background-color: $transparent; }\n\n.bg-dark-red { background-color: $dark-red; }\n.bg-red { background-color: $red; }\n.bg-light-red { background-color: $light-red; }\n.bg-orange { background-color: $orange; }\n.bg-gold { background-color: $gold; }\n.bg-yellow { background-color: $yellow; }\n.bg-light-yellow { background-color: $light-yellow; }\n.bg-purple { background-color: $purple; }\n.bg-light-purple { background-color: $light-purple; }\n.bg-dark-pink { background-color: $dark-pink; }\n.bg-hot-pink { background-color: $hot-pink; }\n.bg-pink { background-color: $pink; }\n.bg-light-pink { background-color: $light-pink; }\n.bg-dark-green { background-color: $dark-green; }\n.bg-green { background-color: $green; }\n.bg-light-green { background-color: $light-green; }\n.bg-navy { background-color: $navy; }\n.bg-dark-blue { background-color: $dark-blue; }\n.bg-blue { background-color: $blue; }\n.bg-light-blue { background-color: $light-blue; }\n.bg-lightest-blue { background-color: $lightest-blue; }\n.bg-washed-blue { background-color: $washed-blue; }\n.bg-washed-green { background-color: $washed-green; }\n.bg-washed-yellow { background-color: $washed-yellow; }\n.bg-washed-red { background-color: $washed-red; }\n.bg-inherit { background-color: inherit; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n SKINS:PSEUDO\n\n Customize the color of an element when\n it is focused or hovered over.\n\n */\n\n.hover-black:hover,\n.hover-black:focus { color: $black; }\n.hover-near-black:hover,\n.hover-near-black:focus { color: $near-black; }\n.hover-dark-gray:hover,\n.hover-dark-gray:focus { color: $dark-gray; }\n.hover-mid-gray:hover,\n.hover-mid-gray:focus { color: $mid-gray; }\n.hover-gray:hover,\n.hover-gray:focus { color: $gray; }\n.hover-silver:hover,\n.hover-silver:focus { color: $silver; }\n.hover-light-silver:hover,\n.hover-light-silver:focus { color: $light-silver; }\n.hover-moon-gray:hover,\n.hover-moon-gray:focus { color: $moon-gray; }\n.hover-light-gray:hover,\n.hover-light-gray:focus { color: $light-gray; }\n.hover-near-white:hover,\n.hover-near-white:focus { color: $near-white; }\n.hover-white:hover,\n.hover-white:focus { color: $white; }\n\n.hover-black-90:hover,\n.hover-black-90:focus { color: $black-90; }\n.hover-black-80:hover,\n.hover-black-80:focus { color: $black-80; }\n.hover-black-70:hover,\n.hover-black-70:focus { color: $black-70; }\n.hover-black-60:hover,\n.hover-black-60:focus { color: $black-60; }\n.hover-black-50:hover,\n.hover-black-50:focus { color: $black-50; }\n.hover-black-40:hover,\n.hover-black-40:focus { color: $black-40; }\n.hover-black-30:hover,\n.hover-black-30:focus { color: $black-30; }\n.hover-black-20:hover,\n.hover-black-20:focus { color: $black-20; }\n.hover-black-10:hover,\n.hover-black-10:focus { color: $black-10; }\n.hover-white-90:hover,\n.hover-white-90:focus { color: $white-90; }\n.hover-white-80:hover,\n.hover-white-80:focus { color: $white-80; }\n.hover-white-70:hover,\n.hover-white-70:focus { color: $white-70; }\n.hover-white-60:hover,\n.hover-white-60:focus { color: $white-60; }\n.hover-white-50:hover,\n.hover-white-50:focus { color: $white-50; }\n.hover-white-40:hover,\n.hover-white-40:focus { color: $white-40; }\n.hover-white-30:hover,\n.hover-white-30:focus { color: $white-30; }\n.hover-white-20:hover,\n.hover-white-20:focus { color: $white-20; }\n.hover-white-10:hover,\n.hover-white-10:focus { color: $white-10; }\n.hover-inherit:hover,\n.hover-inherit:focus { color: inherit; }\n\n.hover-bg-black:hover,\n.hover-bg-black:focus { background-color: $black; }\n.hover-bg-near-black:hover,\n.hover-bg-near-black:focus { background-color: $near-black; }\n.hover-bg-dark-gray:hover,\n.hover-bg-dark-gray:focus { background-color: $dark-gray; }\n.hover-bg-mid-gray:hover,\n.hover-bg-mid-gray:focus { background-color: $mid-gray; }\n.hover-bg-gray:hover,\n.hover-bg-gray:focus { background-color: $gray; }\n.hover-bg-silver:hover,\n.hover-bg-silver:focus { background-color: $silver; }\n.hover-bg-light-silver:hover,\n.hover-bg-light-silver:focus { background-color: $light-silver; }\n.hover-bg-moon-gray:hover,\n.hover-bg-moon-gray:focus { background-color: $moon-gray; }\n.hover-bg-light-gray:hover,\n.hover-bg-light-gray:focus { background-color: $light-gray; }\n.hover-bg-near-white:hover,\n.hover-bg-near-white:focus { background-color: $near-white; }\n.hover-bg-white:hover,\n.hover-bg-white:focus { background-color: $white; }\n.hover-bg-transparent:hover,\n.hover-bg-transparent:focus { background-color: $transparent; }\n\n.hover-bg-black-90:hover,\n.hover-bg-black-90:focus { background-color: $black-90; }\n.hover-bg-black-80:hover,\n.hover-bg-black-80:focus { background-color: $black-80; }\n.hover-bg-black-70:hover,\n.hover-bg-black-70:focus { background-color: $black-70; }\n.hover-bg-black-60:hover,\n.hover-bg-black-60:focus { background-color: $black-60; }\n.hover-bg-black-50:hover,\n.hover-bg-black-50:focus { background-color: $black-50; }\n.hover-bg-black-40:hover,\n.hover-bg-black-40:focus { background-color: $black-40; }\n.hover-bg-black-30:hover,\n.hover-bg-black-30:focus { background-color: $black-30; }\n.hover-bg-black-20:hover,\n.hover-bg-black-20:focus { background-color: $black-20; }\n.hover-bg-black-10:hover,\n.hover-bg-black-10:focus { background-color: $black-10; }\n.hover-bg-white-90:hover,\n.hover-bg-white-90:focus { background-color: $white-90; }\n.hover-bg-white-80:hover,\n.hover-bg-white-80:focus { background-color: $white-80; }\n.hover-bg-white-70:hover,\n.hover-bg-white-70:focus { background-color: $white-70; }\n.hover-bg-white-60:hover,\n.hover-bg-white-60:focus { background-color: $white-60; }\n.hover-bg-white-50:hover,\n.hover-bg-white-50:focus { background-color: $white-50; }\n.hover-bg-white-40:hover,\n.hover-bg-white-40:focus { background-color: $white-40; }\n.hover-bg-white-30:hover,\n.hover-bg-white-30:focus { background-color: $white-30; }\n.hover-bg-white-20:hover,\n.hover-bg-white-20:focus { background-color: $white-20; }\n.hover-bg-white-10:hover,\n.hover-bg-white-10:focus { background-color: $white-10; }\n\n.hover-dark-red:hover,\n.hover-dark-red:focus { color: $dark-red; }\n.hover-red:hover,\n.hover-red:focus { color: $red; }\n.hover-light-red:hover,\n.hover-light-red:focus { color: $light-red; }\n.hover-orange:hover,\n.hover-orange:focus { color: $orange; }\n.hover-gold:hover,\n.hover-gold:focus { color: $gold; }\n.hover-yellow:hover,\n.hover-yellow:focus { color: $yellow; }\n.hover-light-yellow:hover,\n.hover-light-yellow:focus { color: $light-yellow; }\n.hover-purple:hover,\n.hover-purple:focus { color: $purple; }\n.hover-light-purple:hover,\n.hover-light-purple:focus { color: $light-purple; }\n.hover-dark-pink:hover,\n.hover-dark-pink:focus { color: $dark-pink; }\n.hover-hot-pink:hover,\n.hover-hot-pink:focus { color: $hot-pink; }\n.hover-pink:hover,\n.hover-pink:focus { color: $pink; }\n.hover-light-pink:hover,\n.hover-light-pink:focus { color: $light-pink; }\n.hover-dark-green:hover,\n.hover-dark-green:focus { color: $dark-green; }\n.hover-green:hover,\n.hover-green:focus { color: $green; }\n.hover-light-green:hover,\n.hover-light-green:focus { color: $light-green; }\n.hover-navy:hover,\n.hover-navy:focus { color: $navy; }\n.hover-dark-blue:hover,\n.hover-dark-blue:focus { color: $dark-blue; }\n.hover-blue:hover,\n.hover-blue:focus { color: $blue; }\n.hover-light-blue:hover,\n.hover-light-blue:focus { color: $light-blue; }\n.hover-lightest-blue:hover,\n.hover-lightest-blue:focus { color: $lightest-blue; }\n.hover-washed-blue:hover,\n.hover-washed-blue:focus { color: $washed-blue; }\n.hover-washed-green:hover,\n.hover-washed-green:focus { color: $washed-green; }\n.hover-washed-yellow:hover,\n.hover-washed-yellow:focus { color: $washed-yellow; }\n.hover-washed-red:hover,\n.hover-washed-red:focus { color: $washed-red; }\n\n.hover-bg-dark-red:hover,\n.hover-bg-dark-red:focus { background-color: $dark-red; }\n.hover-bg-red:hover,\n.hover-bg-red:focus { background-color: $red; }\n.hover-bg-light-red:hover,\n.hover-bg-light-red:focus { background-color: $light-red; }\n.hover-bg-orange:hover,\n.hover-bg-orange:focus { background-color: $orange; }\n.hover-bg-gold:hover,\n.hover-bg-gold:focus { background-color: $gold; }\n.hover-bg-yellow:hover,\n.hover-bg-yellow:focus { background-color: $yellow; }\n.hover-bg-light-yellow:hover,\n.hover-bg-light-yellow:focus { background-color: $light-yellow; }\n.hover-bg-purple:hover,\n.hover-bg-purple:focus { background-color: $purple; }\n.hover-bg-light-purple:hover,\n.hover-bg-light-purple:focus { background-color: $light-purple; }\n.hover-bg-dark-pink:hover,\n.hover-bg-dark-pink:focus { background-color: $dark-pink; }\n.hover-bg-hot-pink:hover,\n.hover-bg-hot-pink:focus { background-color: $hot-pink; }\n.hover-bg-pink:hover,\n.hover-bg-pink:focus { background-color: $pink; }\n.hover-bg-light-pink:hover,\n.hover-bg-light-pink:focus { background-color: $light-pink; }\n.hover-bg-dark-green:hover,\n.hover-bg-dark-green:focus { background-color: $dark-green; }\n.hover-bg-green:hover,\n.hover-bg-green:focus { background-color: $green; }\n.hover-bg-light-green:hover,\n.hover-bg-light-green:focus { background-color: $light-green; }\n.hover-bg-navy:hover,\n.hover-bg-navy:focus { background-color: $navy; }\n.hover-bg-dark-blue:hover,\n.hover-bg-dark-blue:focus { background-color: $dark-blue; }\n.hover-bg-blue:hover,\n.hover-bg-blue:focus { background-color: $blue; }\n.hover-bg-light-blue:hover,\n.hover-bg-light-blue:focus { background-color: $light-blue; }\n.hover-bg-lightest-blue:hover,\n.hover-bg-lightest-blue:focus { background-color: $lightest-blue; }\n.hover-bg-washed-blue:hover,\n.hover-bg-washed-blue:focus { background-color: $washed-blue; }\n.hover-bg-washed-green:hover,\n.hover-bg-washed-green:focus { background-color: $washed-green; }\n.hover-bg-washed-yellow:hover,\n.hover-bg-washed-yellow:focus { background-color: $washed-yellow; }\n.hover-bg-washed-red:hover,\n.hover-bg-washed-red:focus { background-color: $washed-red; }\n.hover-bg-inherit:hover,\n.hover-bg-inherit:focus { background-color: inherit; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/* Variables */\n\n/*\n SPACING\n Docs: http://tachyons.io/docs/layout/spacing/\n\n An eight step powers of two scale ranging from 0 to 16rem.\n\n Base:\n p = padding\n m = margin\n\n Modifiers:\n a = all\n h = horizontal\n v = vertical\n t = top\n r = right\n b = bottom\n l = left\n\n 0 = none\n 1 = 1st step in spacing scale\n 2 = 2nd step in spacing scale\n 3 = 3rd step in spacing scale\n 4 = 4th step in spacing scale\n 5 = 5th step in spacing scale\n 6 = 6th step in spacing scale\n 7 = 7th step in spacing scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n.pa0 { padding: $spacing-none; }\n.pa1 { padding: $spacing-extra-small; }\n.pa2 { padding: $spacing-small; }\n.pa3 { padding: $spacing-medium; }\n.pa4 { padding: $spacing-large; }\n.pa5 { padding: $spacing-extra-large; }\n.pa6 { padding: $spacing-extra-extra-large; }\n.pa7 { padding: $spacing-extra-extra-extra-large; }\n\n.pl0 { padding-left: $spacing-none; }\n.pl1 { padding-left: $spacing-extra-small; }\n.pl2 { padding-left: $spacing-small; }\n.pl3 { padding-left: $spacing-medium; }\n.pl4 { padding-left: $spacing-large; }\n.pl5 { padding-left: $spacing-extra-large; }\n.pl6 { padding-left: $spacing-extra-extra-large; }\n.pl7 { padding-left: $spacing-extra-extra-extra-large; }\n\n.pr0 { padding-right: $spacing-none; }\n.pr1 { padding-right: $spacing-extra-small; }\n.pr2 { padding-right: $spacing-small; }\n.pr3 { padding-right: $spacing-medium; }\n.pr4 { padding-right: $spacing-large; }\n.pr5 { padding-right: $spacing-extra-large; }\n.pr6 { padding-right: $spacing-extra-extra-large; }\n.pr7 { padding-right: $spacing-extra-extra-extra-large; }\n\n.pb0 { padding-bottom: $spacing-none; }\n.pb1 { padding-bottom: $spacing-extra-small; }\n.pb2 { padding-bottom: $spacing-small; }\n.pb3 { padding-bottom: $spacing-medium; }\n.pb4 { padding-bottom: $spacing-large; }\n.pb5 { padding-bottom: $spacing-extra-large; }\n.pb6 { padding-bottom: $spacing-extra-extra-large; }\n.pb7 { padding-bottom: $spacing-extra-extra-extra-large; }\n\n.pt0 { padding-top: $spacing-none; }\n.pt1 { padding-top: $spacing-extra-small; }\n.pt2 { padding-top: $spacing-small; }\n.pt3 { padding-top: $spacing-medium; }\n.pt4 { padding-top: $spacing-large; }\n.pt5 { padding-top: $spacing-extra-large; }\n.pt6 { padding-top: $spacing-extra-extra-large; }\n.pt7 { padding-top: $spacing-extra-extra-extra-large; }\n\n.pv0 {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n}\n.pv1 {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n}\n.pv2 {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n}\n.pv3 {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n}\n.pv4 {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n}\n.pv5 {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n}\n.pv6 {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n}\n\n.pv7 {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n}\n\n.ph0 {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n}\n\n.ph1 {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n}\n\n.ph2 {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n}\n\n.ph3 {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n}\n\n.ph4 {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n}\n\n.ph5 {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n}\n\n.ph6 {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n}\n\n.ph7 {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n}\n\n.ma0 { margin: $spacing-none; }\n.ma1 { margin: $spacing-extra-small; }\n.ma2 { margin: $spacing-small; }\n.ma3 { margin: $spacing-medium; }\n.ma4 { margin: $spacing-large; }\n.ma5 { margin: $spacing-extra-large; }\n.ma6 { margin: $spacing-extra-extra-large; }\n.ma7 { margin: $spacing-extra-extra-extra-large; }\n\n.ml0 { margin-left: $spacing-none; }\n.ml1 { margin-left: $spacing-extra-small; }\n.ml2 { margin-left: $spacing-small; }\n.ml3 { margin-left: $spacing-medium; }\n.ml4 { margin-left: $spacing-large; }\n.ml5 { margin-left: $spacing-extra-large; }\n.ml6 { margin-left: $spacing-extra-extra-large; }\n.ml7 { margin-left: $spacing-extra-extra-extra-large; }\n\n.mr0 { margin-right: $spacing-none; }\n.mr1 { margin-right: $spacing-extra-small; }\n.mr2 { margin-right: $spacing-small; }\n.mr3 { margin-right: $spacing-medium; }\n.mr4 { margin-right: $spacing-large; }\n.mr5 { margin-right: $spacing-extra-large; }\n.mr6 { margin-right: $spacing-extra-extra-large; }\n.mr7 { margin-right: $spacing-extra-extra-extra-large; }\n\n.mb0 { margin-bottom: $spacing-none; }\n.mb1 { margin-bottom: $spacing-extra-small; }\n.mb2 { margin-bottom: $spacing-small; }\n.mb3 { margin-bottom: $spacing-medium; }\n.mb4 { margin-bottom: $spacing-large; }\n.mb5 { margin-bottom: $spacing-extra-large; }\n.mb6 { margin-bottom: $spacing-extra-extra-large; }\n.mb7 { margin-bottom: $spacing-extra-extra-extra-large; }\n\n.mt0 { margin-top: $spacing-none; }\n.mt1 { margin-top: $spacing-extra-small; }\n.mt2 { margin-top: $spacing-small; }\n.mt3 { margin-top: $spacing-medium; }\n.mt4 { margin-top: $spacing-large; }\n.mt5 { margin-top: $spacing-extra-large; }\n.mt6 { margin-top: $spacing-extra-extra-large; }\n.mt7 { margin-top: $spacing-extra-extra-extra-large; }\n\n.mv0 {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n}\n.mv1 {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n}\n.mv2 {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n}\n.mv3 {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n}\n.mv4 {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n}\n.mv5 {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n}\n.mv6 {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n}\n.mv7 {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n}\n\n.mh0 {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n}\n.mh1 {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n}\n.mh2 {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n}\n.mh3 {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n}\n.mh4 {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n}\n.mh5 {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n}\n.mh6 {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n}\n.mh7 {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n}\n\n@media #{$breakpoint-not-small} {\n .pa0-ns { padding: $spacing-none; }\n .pa1-ns { padding: $spacing-extra-small; }\n .pa2-ns { padding: $spacing-small; }\n .pa3-ns { padding: $spacing-medium; }\n .pa4-ns { padding: $spacing-large; }\n .pa5-ns { padding: $spacing-extra-large; }\n .pa6-ns { padding: $spacing-extra-extra-large; }\n .pa7-ns { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-ns { padding-left: $spacing-none; }\n .pl1-ns { padding-left: $spacing-extra-small; }\n .pl2-ns { padding-left: $spacing-small; }\n .pl3-ns { padding-left: $spacing-medium; }\n .pl4-ns { padding-left: $spacing-large; }\n .pl5-ns { padding-left: $spacing-extra-large; }\n .pl6-ns { padding-left: $spacing-extra-extra-large; }\n .pl7-ns { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-ns { padding-right: $spacing-none; }\n .pr1-ns { padding-right: $spacing-extra-small; }\n .pr2-ns { padding-right: $spacing-small; }\n .pr3-ns { padding-right: $spacing-medium; }\n .pr4-ns { padding-right: $spacing-large; }\n .pr5-ns { padding-right: $spacing-extra-large; }\n .pr6-ns { padding-right: $spacing-extra-extra-large; }\n .pr7-ns { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-ns { padding-bottom: $spacing-none; }\n .pb1-ns { padding-bottom: $spacing-extra-small; }\n .pb2-ns { padding-bottom: $spacing-small; }\n .pb3-ns { padding-bottom: $spacing-medium; }\n .pb4-ns { padding-bottom: $spacing-large; }\n .pb5-ns { padding-bottom: $spacing-extra-large; }\n .pb6-ns { padding-bottom: $spacing-extra-extra-large; }\n .pb7-ns { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-ns { padding-top: $spacing-none; }\n .pt1-ns { padding-top: $spacing-extra-small; }\n .pt2-ns { padding-top: $spacing-small; }\n .pt3-ns { padding-top: $spacing-medium; }\n .pt4-ns { padding-top: $spacing-large; }\n .pt5-ns { padding-top: $spacing-extra-large; }\n .pt6-ns { padding-top: $spacing-extra-extra-large; }\n .pt7-ns { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-ns {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-ns {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-ns {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-ns {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-ns {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-ns {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-ns {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-ns {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n .ph0-ns {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-ns {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-ns {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-ns {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-ns {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-ns {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-ns {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-ns {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-ns { margin: $spacing-none; }\n .ma1-ns { margin: $spacing-extra-small; }\n .ma2-ns { margin: $spacing-small; }\n .ma3-ns { margin: $spacing-medium; }\n .ma4-ns { margin: $spacing-large; }\n .ma5-ns { margin: $spacing-extra-large; }\n .ma6-ns { margin: $spacing-extra-extra-large; }\n .ma7-ns { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-ns { margin-left: $spacing-none; }\n .ml1-ns { margin-left: $spacing-extra-small; }\n .ml2-ns { margin-left: $spacing-small; }\n .ml3-ns { margin-left: $spacing-medium; }\n .ml4-ns { margin-left: $spacing-large; }\n .ml5-ns { margin-left: $spacing-extra-large; }\n .ml6-ns { margin-left: $spacing-extra-extra-large; }\n .ml7-ns { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-ns { margin-right: $spacing-none; }\n .mr1-ns { margin-right: $spacing-extra-small; }\n .mr2-ns { margin-right: $spacing-small; }\n .mr3-ns { margin-right: $spacing-medium; }\n .mr4-ns { margin-right: $spacing-large; }\n .mr5-ns { margin-right: $spacing-extra-large; }\n .mr6-ns { margin-right: $spacing-extra-extra-large; }\n .mr7-ns { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-ns { margin-bottom: $spacing-none; }\n .mb1-ns { margin-bottom: $spacing-extra-small; }\n .mb2-ns { margin-bottom: $spacing-small; }\n .mb3-ns { margin-bottom: $spacing-medium; }\n .mb4-ns { margin-bottom: $spacing-large; }\n .mb5-ns { margin-bottom: $spacing-extra-large; }\n .mb6-ns { margin-bottom: $spacing-extra-extra-large; }\n .mb7-ns { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-ns { margin-top: $spacing-none; }\n .mt1-ns { margin-top: $spacing-extra-small; }\n .mt2-ns { margin-top: $spacing-small; }\n .mt3-ns { margin-top: $spacing-medium; }\n .mt4-ns { margin-top: $spacing-large; }\n .mt5-ns { margin-top: $spacing-extra-large; }\n .mt6-ns { margin-top: $spacing-extra-extra-large; }\n .mt7-ns { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-ns {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-ns {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-ns {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-ns {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-ns {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-ns {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-ns {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-ns {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-ns {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-ns {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-ns {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-ns {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-ns {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-ns {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-ns {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-ns {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n\n}\n\n@media #{$breakpoint-medium} {\n .pa0-m { padding: $spacing-none; }\n .pa1-m { padding: $spacing-extra-small; }\n .pa2-m { padding: $spacing-small; }\n .pa3-m { padding: $spacing-medium; }\n .pa4-m { padding: $spacing-large; }\n .pa5-m { padding: $spacing-extra-large; }\n .pa6-m { padding: $spacing-extra-extra-large; }\n .pa7-m { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-m { padding-left: $spacing-none; }\n .pl1-m { padding-left: $spacing-extra-small; }\n .pl2-m { padding-left: $spacing-small; }\n .pl3-m { padding-left: $spacing-medium; }\n .pl4-m { padding-left: $spacing-large; }\n .pl5-m { padding-left: $spacing-extra-large; }\n .pl6-m { padding-left: $spacing-extra-extra-large; }\n .pl7-m { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-m { padding-right: $spacing-none; }\n .pr1-m { padding-right: $spacing-extra-small; }\n .pr2-m { padding-right: $spacing-small; }\n .pr3-m { padding-right: $spacing-medium; }\n .pr4-m { padding-right: $spacing-large; }\n .pr5-m { padding-right: $spacing-extra-large; }\n .pr6-m { padding-right: $spacing-extra-extra-large; }\n .pr7-m { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-m { padding-bottom: $spacing-none; }\n .pb1-m { padding-bottom: $spacing-extra-small; }\n .pb2-m { padding-bottom: $spacing-small; }\n .pb3-m { padding-bottom: $spacing-medium; }\n .pb4-m { padding-bottom: $spacing-large; }\n .pb5-m { padding-bottom: $spacing-extra-large; }\n .pb6-m { padding-bottom: $spacing-extra-extra-large; }\n .pb7-m { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-m { padding-top: $spacing-none; }\n .pt1-m { padding-top: $spacing-extra-small; }\n .pt2-m { padding-top: $spacing-small; }\n .pt3-m { padding-top: $spacing-medium; }\n .pt4-m { padding-top: $spacing-large; }\n .pt5-m { padding-top: $spacing-extra-large; }\n .pt6-m { padding-top: $spacing-extra-extra-large; }\n .pt7-m { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-m {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-m {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-m {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-m {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-m {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-m {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-m {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-m {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n\n .ph0-m {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-m {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-m {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-m {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-m {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-m {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-m {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-m {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-m { margin: $spacing-none; }\n .ma1-m { margin: $spacing-extra-small; }\n .ma2-m { margin: $spacing-small; }\n .ma3-m { margin: $spacing-medium; }\n .ma4-m { margin: $spacing-large; }\n .ma5-m { margin: $spacing-extra-large; }\n .ma6-m { margin: $spacing-extra-extra-large; }\n .ma7-m { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-m { margin-left: $spacing-none; }\n .ml1-m { margin-left: $spacing-extra-small; }\n .ml2-m { margin-left: $spacing-small; }\n .ml3-m { margin-left: $spacing-medium; }\n .ml4-m { margin-left: $spacing-large; }\n .ml5-m { margin-left: $spacing-extra-large; }\n .ml6-m { margin-left: $spacing-extra-extra-large; }\n .ml7-m { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-m { margin-right: $spacing-none; }\n .mr1-m { margin-right: $spacing-extra-small; }\n .mr2-m { margin-right: $spacing-small; }\n .mr3-m { margin-right: $spacing-medium; }\n .mr4-m { margin-right: $spacing-large; }\n .mr5-m { margin-right: $spacing-extra-large; }\n .mr6-m { margin-right: $spacing-extra-extra-large; }\n .mr7-m { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-m { margin-bottom: $spacing-none; }\n .mb1-m { margin-bottom: $spacing-extra-small; }\n .mb2-m { margin-bottom: $spacing-small; }\n .mb3-m { margin-bottom: $spacing-medium; }\n .mb4-m { margin-bottom: $spacing-large; }\n .mb5-m { margin-bottom: $spacing-extra-large; }\n .mb6-m { margin-bottom: $spacing-extra-extra-large; }\n .mb7-m { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-m { margin-top: $spacing-none; }\n .mt1-m { margin-top: $spacing-extra-small; }\n .mt2-m { margin-top: $spacing-small; }\n .mt3-m { margin-top: $spacing-medium; }\n .mt4-m { margin-top: $spacing-large; }\n .mt5-m { margin-top: $spacing-extra-large; }\n .mt6-m { margin-top: $spacing-extra-extra-large; }\n .mt7-m { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-m {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-m {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-m {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-m {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-m {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-m {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-m {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-m {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-m {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-m {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-m {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-m {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-m {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-m {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-m {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-m {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n\n}\n\n@media #{$breakpoint-large} {\n .pa0-l { padding: $spacing-none; }\n .pa1-l { padding: $spacing-extra-small; }\n .pa2-l { padding: $spacing-small; }\n .pa3-l { padding: $spacing-medium; }\n .pa4-l { padding: $spacing-large; }\n .pa5-l { padding: $spacing-extra-large; }\n .pa6-l { padding: $spacing-extra-extra-large; }\n .pa7-l { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-l { padding-left: $spacing-none; }\n .pl1-l { padding-left: $spacing-extra-small; }\n .pl2-l { padding-left: $spacing-small; }\n .pl3-l { padding-left: $spacing-medium; }\n .pl4-l { padding-left: $spacing-large; }\n .pl5-l { padding-left: $spacing-extra-large; }\n .pl6-l { padding-left: $spacing-extra-extra-large; }\n .pl7-l { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-l { padding-right: $spacing-none; }\n .pr1-l { padding-right: $spacing-extra-small; }\n .pr2-l { padding-right: $spacing-small; }\n .pr3-l { padding-right: $spacing-medium; }\n .pr4-l { padding-right: $spacing-large; }\n .pr5-l { padding-right: $spacing-extra-large; }\n .pr6-l { padding-right: $spacing-extra-extra-large; }\n .pr7-l { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-l { padding-bottom: $spacing-none; }\n .pb1-l { padding-bottom: $spacing-extra-small; }\n .pb2-l { padding-bottom: $spacing-small; }\n .pb3-l { padding-bottom: $spacing-medium; }\n .pb4-l { padding-bottom: $spacing-large; }\n .pb5-l { padding-bottom: $spacing-extra-large; }\n .pb6-l { padding-bottom: $spacing-extra-extra-large; }\n .pb7-l { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-l { padding-top: $spacing-none; }\n .pt1-l { padding-top: $spacing-extra-small; }\n .pt2-l { padding-top: $spacing-small; }\n .pt3-l { padding-top: $spacing-medium; }\n .pt4-l { padding-top: $spacing-large; }\n .pt5-l { padding-top: $spacing-extra-large; }\n .pt6-l { padding-top: $spacing-extra-extra-large; }\n .pt7-l { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-l {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-l {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-l {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-l {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-l {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-l {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-l {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-l {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n\n .ph0-l {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-l {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-l {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-l {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-l {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-l {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-l {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-l {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-l { margin: $spacing-none; }\n .ma1-l { margin: $spacing-extra-small; }\n .ma2-l { margin: $spacing-small; }\n .ma3-l { margin: $spacing-medium; }\n .ma4-l { margin: $spacing-large; }\n .ma5-l { margin: $spacing-extra-large; }\n .ma6-l { margin: $spacing-extra-extra-large; }\n .ma7-l { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-l { margin-left: $spacing-none; }\n .ml1-l { margin-left: $spacing-extra-small; }\n .ml2-l { margin-left: $spacing-small; }\n .ml3-l { margin-left: $spacing-medium; }\n .ml4-l { margin-left: $spacing-large; }\n .ml5-l { margin-left: $spacing-extra-large; }\n .ml6-l { margin-left: $spacing-extra-extra-large; }\n .ml7-l { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-l { margin-right: $spacing-none; }\n .mr1-l { margin-right: $spacing-extra-small; }\n .mr2-l { margin-right: $spacing-small; }\n .mr3-l { margin-right: $spacing-medium; }\n .mr4-l { margin-right: $spacing-large; }\n .mr5-l { margin-right: $spacing-extra-large; }\n .mr6-l { margin-right: $spacing-extra-extra-large; }\n .mr7-l { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-l { margin-bottom: $spacing-none; }\n .mb1-l { margin-bottom: $spacing-extra-small; }\n .mb2-l { margin-bottom: $spacing-small; }\n .mb3-l { margin-bottom: $spacing-medium; }\n .mb4-l { margin-bottom: $spacing-large; }\n .mb5-l { margin-bottom: $spacing-extra-large; }\n .mb6-l { margin-bottom: $spacing-extra-extra-large; }\n .mb7-l { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-l { margin-top: $spacing-none; }\n .mt1-l { margin-top: $spacing-extra-small; }\n .mt2-l { margin-top: $spacing-small; }\n .mt3-l { margin-top: $spacing-medium; }\n .mt4-l { margin-top: $spacing-large; }\n .mt5-l { margin-top: $spacing-extra-large; }\n .mt6-l { margin-top: $spacing-extra-extra-large; }\n .mt7-l { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-l {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-l {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-l {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-l {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-l {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-l {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-l {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-l {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-l {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-l {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-l {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-l {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-l {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-l {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-l {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-l {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n NEGATIVE MARGINS\n\n Base:\n n = negative\n\n Modifiers:\n a = all\n t = top\n r = right\n b = bottom\n l = left\n\n 1 = 1st step in spacing scale\n 2 = 2nd step in spacing scale\n 3 = 3rd step in spacing scale\n 4 = 4th step in spacing scale\n 5 = 5th step in spacing scale\n 6 = 6th step in spacing scale\n 7 = 7th step in spacing scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n.na1 { margin: -$spacing-extra-small; }\n.na2 { margin: -$spacing-small; }\n.na3 { margin: -$spacing-medium; }\n.na4 { margin: -$spacing-large; }\n.na5 { margin: -$spacing-extra-large; }\n.na6 { margin: -$spacing-extra-extra-large; }\n.na7 { margin: -$spacing-extra-extra-extra-large; }\n\n.nl1 { margin-left: -$spacing-extra-small; }\n.nl2 { margin-left: -$spacing-small; }\n.nl3 { margin-left: -$spacing-medium; }\n.nl4 { margin-left: -$spacing-large; }\n.nl5 { margin-left: -$spacing-extra-large; }\n.nl6 { margin-left: -$spacing-extra-extra-large; }\n.nl7 { margin-left: -$spacing-extra-extra-extra-large; }\n\n.nr1 { margin-right: -$spacing-extra-small; }\n.nr2 { margin-right: -$spacing-small; }\n.nr3 { margin-right: -$spacing-medium; }\n.nr4 { margin-right: -$spacing-large; }\n.nr5 { margin-right: -$spacing-extra-large; }\n.nr6 { margin-right: -$spacing-extra-extra-large; }\n.nr7 { margin-right: -$spacing-extra-extra-extra-large; }\n\n.nb1 { margin-bottom: -$spacing-extra-small; }\n.nb2 { margin-bottom: -$spacing-small; }\n.nb3 { margin-bottom: -$spacing-medium; }\n.nb4 { margin-bottom: -$spacing-large; }\n.nb5 { margin-bottom: -$spacing-extra-large; }\n.nb6 { margin-bottom: -$spacing-extra-extra-large; }\n.nb7 { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n.nt1 { margin-top: -$spacing-extra-small; }\n.nt2 { margin-top: -$spacing-small; }\n.nt3 { margin-top: -$spacing-medium; }\n.nt4 { margin-top: -$spacing-large; }\n.nt5 { margin-top: -$spacing-extra-large; }\n.nt6 { margin-top: -$spacing-extra-extra-large; }\n.nt7 { margin-top: -$spacing-extra-extra-extra-large; }\n\n@media #{$breakpoint-not-small} {\n\n .na1-ns { margin: -$spacing-extra-small; }\n .na2-ns { margin: -$spacing-small; }\n .na3-ns { margin: -$spacing-medium; }\n .na4-ns { margin: -$spacing-large; }\n .na5-ns { margin: -$spacing-extra-large; }\n .na6-ns { margin: -$spacing-extra-extra-large; }\n .na7-ns { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-ns { margin-left: -$spacing-extra-small; }\n .nl2-ns { margin-left: -$spacing-small; }\n .nl3-ns { margin-left: -$spacing-medium; }\n .nl4-ns { margin-left: -$spacing-large; }\n .nl5-ns { margin-left: -$spacing-extra-large; }\n .nl6-ns { margin-left: -$spacing-extra-extra-large; }\n .nl7-ns { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-ns { margin-right: -$spacing-extra-small; }\n .nr2-ns { margin-right: -$spacing-small; }\n .nr3-ns { margin-right: -$spacing-medium; }\n .nr4-ns { margin-right: -$spacing-large; }\n .nr5-ns { margin-right: -$spacing-extra-large; }\n .nr6-ns { margin-right: -$spacing-extra-extra-large; }\n .nr7-ns { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-ns { margin-bottom: -$spacing-extra-small; }\n .nb2-ns { margin-bottom: -$spacing-small; }\n .nb3-ns { margin-bottom: -$spacing-medium; }\n .nb4-ns { margin-bottom: -$spacing-large; }\n .nb5-ns { margin-bottom: -$spacing-extra-large; }\n .nb6-ns { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-ns { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-ns { margin-top: -$spacing-extra-small; }\n .nt2-ns { margin-top: -$spacing-small; }\n .nt3-ns { margin-top: -$spacing-medium; }\n .nt4-ns { margin-top: -$spacing-large; }\n .nt5-ns { margin-top: -$spacing-extra-large; }\n .nt6-ns { margin-top: -$spacing-extra-extra-large; }\n .nt7-ns { margin-top: -$spacing-extra-extra-extra-large; }\n\n}\n\n@media #{$breakpoint-medium} {\n .na1-m { margin: -$spacing-extra-small; }\n .na2-m { margin: -$spacing-small; }\n .na3-m { margin: -$spacing-medium; }\n .na4-m { margin: -$spacing-large; }\n .na5-m { margin: -$spacing-extra-large; }\n .na6-m { margin: -$spacing-extra-extra-large; }\n .na7-m { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-m { margin-left: -$spacing-extra-small; }\n .nl2-m { margin-left: -$spacing-small; }\n .nl3-m { margin-left: -$spacing-medium; }\n .nl4-m { margin-left: -$spacing-large; }\n .nl5-m { margin-left: -$spacing-extra-large; }\n .nl6-m { margin-left: -$spacing-extra-extra-large; }\n .nl7-m { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-m { margin-right: -$spacing-extra-small; }\n .nr2-m { margin-right: -$spacing-small; }\n .nr3-m { margin-right: -$spacing-medium; }\n .nr4-m { margin-right: -$spacing-large; }\n .nr5-m { margin-right: -$spacing-extra-large; }\n .nr6-m { margin-right: -$spacing-extra-extra-large; }\n .nr7-m { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-m { margin-bottom: -$spacing-extra-small; }\n .nb2-m { margin-bottom: -$spacing-small; }\n .nb3-m { margin-bottom: -$spacing-medium; }\n .nb4-m { margin-bottom: -$spacing-large; }\n .nb5-m { margin-bottom: -$spacing-extra-large; }\n .nb6-m { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-m { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-m { margin-top: -$spacing-extra-small; }\n .nt2-m { margin-top: -$spacing-small; }\n .nt3-m { margin-top: -$spacing-medium; }\n .nt4-m { margin-top: -$spacing-large; }\n .nt5-m { margin-top: -$spacing-extra-large; }\n .nt6-m { margin-top: -$spacing-extra-extra-large; }\n .nt7-m { margin-top: -$spacing-extra-extra-extra-large; }\n\n}\n\n@media #{$breakpoint-large} {\n .na1-l { margin: -$spacing-extra-small; }\n .na2-l { margin: -$spacing-small; }\n .na3-l { margin: -$spacing-medium; }\n .na4-l { margin: -$spacing-large; }\n .na5-l { margin: -$spacing-extra-large; }\n .na6-l { margin: -$spacing-extra-extra-large; }\n .na7-l { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-l { margin-left: -$spacing-extra-small; }\n .nl2-l { margin-left: -$spacing-small; }\n .nl3-l { margin-left: -$spacing-medium; }\n .nl4-l { margin-left: -$spacing-large; }\n .nl5-l { margin-left: -$spacing-extra-large; }\n .nl6-l { margin-left: -$spacing-extra-extra-large; }\n .nl7-l { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-l { margin-right: -$spacing-extra-small; }\n .nr2-l { margin-right: -$spacing-small; }\n .nr3-l { margin-right: -$spacing-medium; }\n .nr4-l { margin-right: -$spacing-large; }\n .nr5-l { margin-right: -$spacing-extra-large; }\n .nr6-l { margin-right: -$spacing-extra-extra-large; }\n .nr7-l { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-l { margin-bottom: -$spacing-extra-small; }\n .nb2-l { margin-bottom: -$spacing-small; }\n .nb3-l { margin-bottom: -$spacing-medium; }\n .nb4-l { margin-bottom: -$spacing-large; }\n .nb5-l { margin-bottom: -$spacing-extra-large; }\n .nb6-l { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-l { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-l { margin-top: -$spacing-extra-small; }\n .nt2-l { margin-top: -$spacing-small; }\n .nt3-l { margin-top: -$spacing-medium; }\n .nt4-l { margin-top: -$spacing-large; }\n .nt5-l { margin-top: -$spacing-extra-large; }\n .nt6-l { margin-top: -$spacing-extra-extra-large; }\n .nt7-l { margin-top: -$spacing-extra-extra-extra-large; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TABLES\n Docs: http://tachyons.io/docs/elements/tables/\n\n*/\n\n.collapse {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.striped--light-silver:nth-child(odd) {\n background-color: $light-silver;\n}\n\n.striped--moon-gray:nth-child(odd) {\n background-color: $moon-gray;\n}\n\n.striped--light-gray:nth-child(odd) {\n background-color: $light-gray;\n}\n\n.striped--near-white:nth-child(odd) {\n background-color: $near-white;\n}\n\n.stripe-light:nth-child(odd) {\n background-color: $white-10;\n}\n\n.stripe-dark:nth-child(odd) {\n background-color: $black-10;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT DECORATION\n Docs: http://tachyons.io/docs/typography/text-decoration/\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.strike { text-decoration: line-through; }\n.underline { text-decoration: underline; }\n.no-underline { text-decoration: none; }\n\n\n@media #{$breakpoint-not-small} {\n .strike-ns { text-decoration: line-through; }\n .underline-ns { text-decoration: underline; }\n .no-underline-ns { text-decoration: none; }\n}\n\n@media #{$breakpoint-medium} {\n .strike-m { text-decoration: line-through; }\n .underline-m { text-decoration: underline; }\n .no-underline-m { text-decoration: none; }\n}\n\n@media #{$breakpoint-large} {\n .strike-l { text-decoration: line-through; }\n .underline-l { text-decoration: underline; }\n .no-underline-l { text-decoration: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT ALIGN\n Docs: http://tachyons.io/docs/typography/text-align/\n\n Base\n t = text-align\n\n Modifiers\n l = left\n r = right\n c = center\n j = justify\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.tl { text-align: left; }\n.tr { text-align: right; }\n.tc { text-align: center; }\n.tj { text-align: justify; }\n\n@media #{$breakpoint-not-small} {\n .tl-ns { text-align: left; }\n .tr-ns { text-align: right; }\n .tc-ns { text-align: center; }\n .tj-ns { text-align: justify; }\n}\n\n@media #{$breakpoint-medium} {\n .tl-m { text-align: left; }\n .tr-m { text-align: right; }\n .tc-m { text-align: center; }\n .tj-m { text-align: justify; }\n}\n\n@media #{$breakpoint-large} {\n .tl-l { text-align: left; }\n .tr-l { text-align: right; }\n .tc-l { text-align: center; }\n .tj-l { text-align: justify; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT TRANSFORM\n Docs: http://tachyons.io/docs/typography/text-transform/\n\n Base:\n tt = text-transform\n\n Modifiers\n c = capitalize\n l = lowercase\n u = uppercase\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.ttc { text-transform: capitalize; }\n.ttl { text-transform: lowercase; }\n.ttu { text-transform: uppercase; }\n.ttn { text-transform: none; }\n\n@media #{$breakpoint-not-small} {\n .ttc-ns { text-transform: capitalize; }\n .ttl-ns { text-transform: lowercase; }\n .ttu-ns { text-transform: uppercase; }\n .ttn-ns { text-transform: none; }\n}\n\n@media #{$breakpoint-medium} {\n .ttc-m { text-transform: capitalize; }\n .ttl-m { text-transform: lowercase; }\n .ttu-m { text-transform: uppercase; }\n .ttn-m { text-transform: none; }\n}\n\n@media #{$breakpoint-large} {\n .ttc-l { text-transform: capitalize; }\n .ttl-l { text-transform: lowercase; }\n .ttu-l { text-transform: uppercase; }\n .ttn-l { text-transform: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TYPE SCALE\n Docs: http://tachyons.io/docs/typography/scale/\n\n Base:\n f = font-size\n\n Modifiers\n 1 = 1st step in size scale\n 2 = 2nd step in size scale\n 3 = 3rd step in size scale\n 4 = 4th step in size scale\n 5 = 5th step in size scale\n 6 = 6th step in size scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n*/\n\n/*\n * For Hero/Marketing Titles\n *\n * These generally are too large for mobile\n * so be careful using them on smaller screens.\n * */\n\n.f-6,\n.f-headline {\n font-size: $font-size-headline;\n}\n.f-5,\n.f-subheadline {\n font-size: $font-size-subheadline;\n}\n\n\n/* Type Scale */\n\n\n.f1 { font-size: $font-size-1; }\n.f2 { font-size: $font-size-2; }\n.f3 { font-size: $font-size-3; }\n.f4 { font-size: $font-size-4; }\n.f5 { font-size: $font-size-5; }\n.f6 { font-size: $font-size-6; }\n.f7 { font-size: $font-size-7; }\n\n@media #{$breakpoint-not-small}{\n .f-6-ns,\n .f-headline-ns { font-size: $font-size-headline; }\n .f-5-ns,\n .f-subheadline-ns { font-size: $font-size-subheadline; }\n .f1-ns { font-size: $font-size-1; }\n .f2-ns { font-size: $font-size-2; }\n .f3-ns { font-size: $font-size-3; }\n .f4-ns { font-size: $font-size-4; }\n .f5-ns { font-size: $font-size-5; }\n .f6-ns { font-size: $font-size-6; }\n .f7-ns { font-size: $font-size-7; }\n}\n\n@media #{$breakpoint-medium} {\n .f-6-m,\n .f-headline-m { font-size: $font-size-headline; }\n .f-5-m,\n .f-subheadline-m { font-size: $font-size-subheadline; }\n .f1-m { font-size: $font-size-1; }\n .f2-m { font-size: $font-size-2; }\n .f3-m { font-size: $font-size-3; }\n .f4-m { font-size: $font-size-4; }\n .f5-m { font-size: $font-size-5; }\n .f6-m { font-size: $font-size-6; }\n .f7-m { font-size: $font-size-7; }\n}\n\n@media #{$breakpoint-large} {\n .f-6-l,\n .f-headline-l {\n font-size: $font-size-headline;\n }\n .f-5-l,\n .f-subheadline-l {\n font-size: $font-size-subheadline;\n }\n .f1-l { font-size: $font-size-1; }\n .f2-l { font-size: $font-size-2; }\n .f3-l { font-size: $font-size-3; }\n .f4-l { font-size: $font-size-4; }\n .f5-l { font-size: $font-size-5; }\n .f6-l { font-size: $font-size-6; }\n .f7-l { font-size: $font-size-7; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TYPOGRAPHY\n http://tachyons.io/docs/typography/measure/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n/* Measure is limited to ~66 characters */\n.measure {\n max-width: $measure;\n}\n\n/* Measure is limited to ~80 characters */\n.measure-wide {\n max-width: $measure-wide;\n}\n\n/* Measure is limited to ~45 characters */\n.measure-narrow {\n max-width: $measure-narrow;\n}\n\n/* Book paragraph style - paragraphs are indented with no vertical spacing. */\n.indent {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.small-caps {\n font-variant: small-caps;\n}\n\n/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */\n\n.truncate {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n@media #{$breakpoint-not-small} {\n .measure-ns {\n max-width: $measure;\n }\n .measure-wide-ns {\n max-width: $measure-wide;\n }\n .measure-narrow-ns {\n max-width: $measure-narrow;\n }\n .indent-ns {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-ns {\n font-variant: small-caps;\n }\n .truncate-ns {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n@media #{$breakpoint-medium} {\n .measure-m {\n max-width: $measure;\n }\n .measure-wide-m {\n max-width: $measure-wide;\n }\n .measure-narrow-m {\n max-width: $measure-narrow;\n }\n .indent-m {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-m {\n font-variant: small-caps;\n }\n .truncate-m {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n@media #{$breakpoint-large} {\n .measure-l {\n max-width: $measure;\n }\n .measure-wide-l {\n max-width: $measure-wide;\n }\n .measure-narrow-l {\n max-width: $measure-narrow;\n }\n .indent-l {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-l {\n font-variant: small-caps;\n }\n .truncate-l {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n UTILITIES\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Equivalent to .overflow-y-scroll */\n.overflow-container {\n overflow-y: scroll;\n}\n\n.center {\n margin-right: auto;\n margin-left: auto;\n}\n\n.mr-auto { margin-right: auto; }\n.ml-auto { margin-left: auto; }\n\n@media #{$breakpoint-not-small}{\n .center-ns {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-ns { margin-right: auto; }\n .ml-auto-ns { margin-left: auto; }\n}\n\n@media #{$breakpoint-medium}{\n .center-m {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-m { margin-right: auto; }\n .ml-auto-m { margin-left: auto; }\n}\n\n@media #{$breakpoint-large}{\n .center-l {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-l { margin-right: auto; }\n .ml-auto-l { margin-left: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n VISIBILITY\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n/*\n Text that is hidden but accessible\n Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility\n*/\n\n.clip {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n}\n\n@media #{$breakpoint-not-small} {\n .clip-ns {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n@media #{$breakpoint-medium} {\n .clip-m {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n@media #{$breakpoint-large} {\n .clip-l {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n WHITE SPACE\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n.ws-normal { white-space: normal; }\n.nowrap { white-space: nowrap; }\n.pre { white-space: pre; }\n\n@media #{$breakpoint-not-small} {\n .ws-normal-ns { white-space: normal; }\n .nowrap-ns { white-space: nowrap; }\n .pre-ns { white-space: pre; }\n}\n\n@media #{$breakpoint-medium} {\n .ws-normal-m { white-space: normal; }\n .nowrap-m { white-space: nowrap; }\n .pre-m { white-space: pre; }\n}\n\n@media #{$breakpoint-large} {\n .ws-normal-l { white-space: normal; }\n .nowrap-l { white-space: nowrap; }\n .pre-l { white-space: pre; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n VERTICAL ALIGN\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.v-base { vertical-align: baseline; }\n.v-mid { vertical-align: middle; }\n.v-top { vertical-align: top; }\n.v-btm { vertical-align: bottom; }\n\n@media #{$breakpoint-not-small} {\n .v-base-ns { vertical-align: baseline; }\n .v-mid-ns { vertical-align: middle; }\n .v-top-ns { vertical-align: top; }\n .v-btm-ns { vertical-align: bottom; }\n}\n\n@media #{$breakpoint-medium} {\n .v-base-m { vertical-align: baseline; }\n .v-mid-m { vertical-align: middle; }\n .v-top-m { vertical-align: top; }\n .v-btm-m { vertical-align: bottom; }\n}\n\n@media #{$breakpoint-large} {\n .v-base-l { vertical-align: baseline; }\n .v-mid-l { vertical-align: middle; }\n .v-top-l { vertical-align: top; }\n .v-btm-l { vertical-align: bottom; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n HOVER EFFECTS\n Docs: http://tachyons.io/docs/themes/hovers/\n\n - Dim\n - Glow\n - Hide Child\n - Underline text\n - Grow\n - Pointer\n - Shadow\n\n*/\n\n/*\n\n Dim element on hover by adding the dim class.\n\n*/\n.dim {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n.dim:hover,\n.dim:focus {\n opacity: .5;\n transition: opacity .15s ease-in;\n}\n.dim:active {\n opacity: .8; transition: opacity .15s ease-out;\n}\n\n/*\n\n Animate opacity to 100% on hover by adding the glow class.\n\n*/\n.glow {\n transition: opacity .15s ease-in;\n}\n.glow:hover,\n.glow:focus {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n/*\n\n Hide child & reveal on hover:\n\n Put the hide-child class on a parent element and any nested element with the\n child class will be hidden and displayed on hover or focus.\n\n
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
\n*/\n\n.hide-child .child {\n opacity: 0;\n transition: opacity .15s ease-in;\n}\n.hide-child:hover .child,\n.hide-child:focus .child,\n.hide-child:active .child {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n.underline-hover:hover,\n.underline-hover:focus {\n text-decoration: underline;\n}\n\n/* Can combine this with overflow-hidden to make background images grow on hover\n * even if you are using background-size: cover */\n\n.grow {\n -moz-osx-font-smoothing: grayscale;\n backface-visibility: hidden;\n transform: translateZ(0);\n transition: transform 0.25s ease-out;\n}\n\n.grow:hover,\n.grow:focus {\n transform: scale(1.05);\n}\n\n.grow:active {\n transform: scale(.90);\n}\n\n.grow-large {\n -moz-osx-font-smoothing: grayscale;\n backface-visibility: hidden;\n transform: translateZ(0);\n transition: transform .25s ease-in-out;\n}\n\n.grow-large:hover,\n.grow-large:focus {\n transform: scale(1.2);\n}\n\n.grow-large:active {\n transform: scale(.95);\n}\n\n/* Add pointer on hover */\n\n.pointer:hover {\n cursor: pointer;\n}\n\n/*\n Add shadow on hover.\n\n Performant box-shadow animation pattern from\n http://tobiasahlin.com/blog/how-to-animate-box-shadow/\n*/\n\n.shadow-hover {\n cursor: pointer;\n position: relative;\n transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n.shadow-hover::after {\n content: '';\n box-shadow: 0px 0px 16px 2px rgba( 0, 0, 0, .2 );\n border-radius: inherit;\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n.shadow-hover:hover::after,\n.shadow-hover:focus::after {\n opacity: 1;\n}\n\n/* Combine with classes in skins and skins-pseudo for\n * many different transition possibilities. */\n\n.bg-animate,\n.bg-animate:hover,\n.bg-animate:focus {\n transition: background-color .15s ease-in-out;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n Z-INDEX\n\n Base\n z = z-index\n\n Modifiers\n -0 = literal value 0\n -1 = literal value 1\n -2 = literal value 2\n -3 = literal value 3\n -4 = literal value 4\n -5 = literal value 5\n -999 = literal value 999\n -9999 = literal value 9999\n\n -max = largest accepted z-index value as integer\n\n -inherit = string value inherit\n -initial = string value initial\n -unset = string value unset\n\n MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index\n Spec: http://www.w3.org/TR/CSS2/zindex.html\n Articles:\n https://philipwalton.com/articles/what-no-one-told-you-about-z-index/\n\n Tips on extending:\n There might be a time worth using negative z-index values.\n Or if you are using tachyons with another project, you might need to\n adjust these values to suit your needs.\n\n*/\n\n.z-0 { z-index: 0; }\n.z-1 { z-index: 1; }\n.z-2 { z-index: 2; }\n.z-3 { z-index: 3; }\n.z-4 { z-index: 4; }\n.z-5 { z-index: 5; }\n\n.z-999 { z-index: 999; }\n.z-9999 { z-index: 9999; }\n\n.z-max {\n z-index: 2147483647;\n}\n\n.z-inherit { z-index: inherit; }\n.z-initial { z-index: initial; }\n.z-unset { z-index: unset; }\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n NESTED\n Tachyons module for styling nested elements\n that are generated by a cms.\n\n*/\n\n.nested-copy-line-height p,\n.nested-copy-line-height ul,\n.nested-copy-line-height ol {\n line-height: $line-height-copy;\n}\n\n.nested-headline-line-height h1,\n.nested-headline-line-height h2,\n.nested-headline-line-height h3,\n.nested-headline-line-height h4,\n.nested-headline-line-height h5,\n.nested-headline-line-height h6 {\n line-height: $line-height-title;\n}\n\n.nested-list-reset ul,\n.nested-list-reset ol {\n padding-left: 0;\n margin-left: 0;\n list-style-type: none;\n}\n\n.nested-copy-indent p+p {\n text-indent: $letter-spacing-1;\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n}\n\n.nested-copy-seperator p+p {\n margin-top: $spacing-copy-separator;\n}\n\n.nested-img img {\n width: 100%;\n max-width: 100%;\n display: block;\n}\n\n.nested-links a {\n color: $blue;\n transition: color .15s ease-in;\n}\n\n.nested-links a:hover,\n.nested-links a:focus {\n color: $light-blue;\n transition: color .15s ease-in;\n}\n",".wrapper\n{\n width: 100%;\n max-width: 1460px;\n margin: 0 auto;\n padding: 0 20px;\n box-sizing: border-box;\n}\n\n.opblock-tag-section\n{\n display: flex;\n flex-direction: column;\n}\n\n.try-out.btn-group {\n padding: 0;\n display: flex;\n flex: 0.1 2 auto;\n}\n\n.try-out__btn {\n margin-left: 1.25rem;\n}\n\n.opblock-tag\n{\n display: flex;\n align-items: center;\n\n padding: 10px 20px 10px 10px;\n\n cursor: pointer;\n transition: all .2s;\n\n border-bottom: 1px solid rgba($opblock-tag-border-bottom-color, .3);\n\n &:hover\n {\n background: rgba($opblock-tag-background-color-hover,.02);\n }\n}\n\n@mixin method($color)\n{\n border-color: $color;\n background: rgba($color, .1);\n\n .opblock-summary-method\n {\n background: $color;\n }\n\n .opblock-summary\n {\n border-color: $color;\n }\n\n .tab-header .tab-item.active h4 span:after\n {\n background: $color;\n }\n}\n\n\n\n\n.opblock-tag\n{\n font-size: 24px;\n\n margin: 0 0 5px 0;\n\n @include text_headline();\n\n &.no-desc\n {\n span\n {\n flex: 1;\n }\n }\n\n svg\n {\n transition: all .4s;\n }\n\n small\n {\n font-size: 14px;\n font-weight: normal;\n\n flex: 2;\n\n padding: 0 10px;\n\n @include text_body();\n }\n\n >div\n {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n flex: 1 1 150px;\n font-weight: 400;\n }\n\n @media (max-width: 640px) {\n small\n {\n flex: 1;\n }\n\n >div\n {\n flex: 1;\n }\n }\n\n .info__externaldocs\n {\n text-align: right;\n }\n}\n\n.parameter__type\n{\n font-size: 12px;\n\n padding: 5px 0;\n\n @include text_code();\n}\n\n.parameter-controls {\n margin-top: 0.75em;\n}\n\n.examples {\n &__title {\n display: block;\n font-size: 1.1em;\n font-weight: bold;\n margin-bottom: 0.75em;\n }\n\n &__section {\n margin-top: 1.5em;\n }\n &__section-header {\n font-weight: bold;\n font-size: .9rem;\n margin-bottom: .5rem;\n // color: #555;\n }\n}\n\n.examples-select {\n margin-bottom: .75em;\n display: inline-block;\n .examples-select-element {\n width: 100%;\n }\n &__section-label {\n font-weight: bold;\n font-size: .9rem;\n margin-right: .5rem;\n }\n}\n\n.example {\n &__section {\n margin-top: 1.5em;\n }\n &__section-header {\n font-weight: bold;\n font-size: .9rem;\n margin-bottom: .5rem;\n // color: #555;\n }\n}\n\n.view-line-link\n{\n position: relative;\n top: 3px;\n\n width: 20px;\n margin: 0 5px;\n\n cursor: pointer;\n transition: all .5s;\n}\n\n\n\n.opblock\n{\n margin: 0 0 15px 0;\n\n border: 1px solid $opblock-border-color;\n border-radius: 4px;\n box-shadow: 0 0 3px rgba($opblock-box-shadow-color,.19);\n\n .tab-header\n {\n display: flex;\n\n flex: 1;\n\n .tab-item\n {\n padding: 0 40px;\n\n cursor: pointer;\n\n &:first-of-type\n {\n padding: 0 40px 0 0;\n }\n &.active\n {\n h4\n {\n span\n {\n position: relative;\n\n\n &:after\n {\n position: absolute;\n bottom: -15px;\n left: 50%;\n\n width: 120%;\n height: 4px;\n\n content: '';\n transform: translateX(-50%);\n\n background: $opblock-tab-header-tab-item-active-h4-span-after-background-color;\n }\n }\n }\n }\n }\n }\n\n\n &.is-open\n {\n .opblock-summary\n {\n border-bottom: 1px solid $opblock-isopen-summary-border-bottom-color;\n }\n }\n\n .opblock-section-header\n {\n display: flex;\n align-items: center;\n\n padding: 8px 20px;\n\n min-height: 50px;\n\n background: rgba($opblock-isopen-section-header-background-color,.8);\n box-shadow: 0 1px 2px rgba($opblock-isopen-section-header-box-shadow-color,.1);\n\n >label\n {\n font-size: 12px;\n font-weight: bold;\n\n display: flex;\n align-items: center;\n\n margin: 0;\n margin-left: auto;\n\n @include text_headline();\n\n >span\n {\n padding: 0 10px 0 0;\n }\n }\n\n h4\n {\n font-size: 14px;\n\n flex: 1;\n\n margin: 0;\n\n @include text_headline();\n }\n }\n\n .opblock-summary-method\n {\n font-size: 14px;\n font-weight: bold;\n @media (max-width: 768px) {\n font-size: 12px;\n }\n\n min-width: 80px;\n padding: 6px 0;\n\n text-align: center;\n\n border-radius: 3px;\n background: $opblock-summary-method-background-color;\n text-shadow: 0 1px 0 rgba($opblock-summary-method-text-shadow-color,.1);\n\n @include text_headline($opblock-summary-method-font-color);\n }\n\n .opblock-summary-path,\n .opblock-summary-operation-id,\n .opblock-summary-path__deprecated\n {\n font-size: 16px;\n @media (max-width: 768px) {\n font-size: 12px;\n }\n\n\n display: flex;\n align-items: center;\n\n word-break: break-word;\n\n @include text_code();\n\n }\n\n .opblock-summary-path\n {\n flex-shrink: 0;\n }\n\n @media (max-width: 640px) {\n .opblock-summary-path\n {\n flex-shrink: 1;\n max-width: 100%;\n }\n }\n\n .opblock-summary-path__deprecated\n {\n text-decoration: line-through;\n }\n\n .opblock-summary-operation-id\n {\n font-size: 14px;\n }\n\n .opblock-summary-description\n {\n font-size: 13px;\n\n word-break: break-word;\n\n @include text_body();\n }\n\n .opblock-summary-path-description-wrapper\n {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 0px 10px;\n\n padding: 0 10px;\n\n width: 100%;\n }\n\n @media (max-width: 550px) {\n .opblock-summary-path-description-wrapper\n {\n flex-direction: column;\n align-items: start;\n }\n }\n\n .opblock-summary\n {\n display: flex;\n align-items: center;\n\n padding: 5px;\n\n cursor: pointer;\n\n .view-line-link\n {\n position: relative;\n top: 2px;\n\n width: 0;\n margin: 0;\n\n cursor: pointer;\n transition: all .5s;\n }\n\n &:hover\n {\n .view-line-link\n {\n width: 18px;\n margin: 0 5px;\n\n &.copy-to-clipboard {\n width: 24px;\n }\n }\n }\n }\n\n\n\n &.opblock-post\n {\n @include method($_color-post);\n }\n\n &.opblock-put\n {\n @include method($_color-put);\n }\n\n &.opblock-delete\n {\n @include method($_color-delete);\n }\n\n &.opblock-get\n {\n @include method($_color-get);\n }\n\n &.opblock-patch\n {\n @include method($_color-patch);\n }\n\n &.opblock-head\n {\n @include method($_color-head);\n }\n\n &.opblock-options\n {\n @include method($_color-options);\n }\n\n &.opblock-deprecated\n {\n opacity: .6;\n\n @include method($_color-disabled);\n }\n\n .opblock-schemes\n {\n padding: 8px 20px;\n\n .schemes-title\n {\n padding: 0 10px 0 0;\n }\n }\n}\n\n.filter\n{\n .operation-filter-input\n {\n width: 100%;\n margin: 20px 0;\n padding: 10px 10px;\n\n border: 2px solid $operational-filter-input-border-color;\n }\n}\n\n.filter, .download-url-wrapper\n{\n .failed\n {\n color: red;\n }\n\n .loading\n {\n color: #aaa;\n }\n}\n\n.model-example {\n margin-top: 1em;\n}\n\n.tab\n{\n display: flex;\n\n padding: 0;\n\n list-style: none;\n\n li\n {\n font-size: 12px;\n\n min-width: 60px;\n padding: 0;\n\n cursor: pointer;\n\n @include text_headline();\n\n &:first-of-type\n {\n position: relative;\n\n padding-left: 0;\n padding-right: 12px;\n\n &:after\n {\n position: absolute;\n top: 0;\n right: 6px;\n\n width: 1px;\n height: 100%;\n\n content: '';\n\n background: rgba($tab-list-item-first-background-color,.2);\n }\n }\n\n &.active\n {\n font-weight: bold;\n }\n\n button.tablinks\n {\n background: none;\n border: 0;\n padding: 0;\n\n color: inherit;\n font-family: inherit;\n font-weight: inherit;\n }\n }\n}\n\n.opblock-description-wrapper,\n.opblock-external-docs-wrapper,\n.opblock-title_normal\n{\n font-size: 12px;\n\n margin: 0 0 5px 0;\n padding: 15px 20px;\n\n @include text_body();\n\n h4\n {\n font-size: 12px;\n\n margin: 0 0 5px 0;\n\n @include text_body();\n }\n\n p\n {\n font-size: 14px;\n\n margin: 0;\n\n @include text_body();\n }\n}\n\n.opblock-external-docs-wrapper {\n h4 {\n padding-left: 0px;\n }\n}\n\n.execute-wrapper\n{\n padding: 20px;\n\n text-align: right;\n\n .btn\n {\n width: 100%;\n padding: 8px 40px;\n }\n}\n\n.body-param-options\n{\n display: flex;\n flex-direction: column;\n\n .body-param-edit\n {\n padding: 10px 0;\n }\n\n label\n {\n padding: 8px 0;\n select\n {\n margin: 3px 0 0 0;\n }\n }\n}\n\n.responses-inner\n{\n padding: 20px;\n\n h5,\n h4\n {\n font-size: 12px;\n\n margin: 10px 0 5px 0;\n\n @include text_body();\n }\n\n .curl\n {\n white-space: normal;\n }\n}\n\n.response-col_status\n{\n font-size: 14px;\n\n @include text_body();\n\n .response-undocumented\n {\n font-size: 11px;\n\n @include text_code($response-col-status-undocumented-font-color);\n }\n}\n\n.response-col_links\n{\n padding-left: 2em;\n max-width: 40em;\n font-size: 14px;\n\n @include text_body();\n\n .response-undocumented\n {\n font-size: 11px;\n\n @include text_code($response-col-links-font-color);\n }\n\n .operation-link\n {\n margin-bottom: 1.5em;\n\n .description\n {\n margin-bottom: 0.5em;\n }\n }\n}\n\n.opblock-body\n{\n .opblock-loading-animation\n {\n display: block;\n margin: 3em;\n margin-left: auto;\n margin-right: auto;\n }\n}\n\n.opblock-body pre.microlight\n{\n font-size: 12px;\n\n margin: 0;\n padding: 10px;\n\n white-space: pre-wrap;\n word-wrap: break-word;\n word-break: break-all;\n word-break: break-word;\n hyphens: auto;\n\n border-radius: 4px;\n background: $opblock-body-background-color;\n\n overflow-wrap: break-word;\n @include text_code($opblock-body-font-color);\n\n // disabled to have syntax highliting with react-syntax-highlight\n // span\n // {\n // color: $opblock-body-font-color !important;\n // }\n\n .headerline\n {\n display: block;\n }\n}\n\n.highlight-code {\n position: relative;\n\n > .microlight {\n overflow-y: auto;\n max-height: 400px;\n min-height: 6em;\n\n code {\n white-space: pre-wrap !important;\n word-break: break-all;\n }\n }\n}\n.curl-command {\n position: relative;\n}\n\n.download-contents {\n position: absolute;\n bottom: 10px;\n right: 10px;\n background: #7d8293;\n text-align: center;\n padding: 5px;\n border: none;\n border-radius: 4px;\n font-family: sans-serif;\n font-weight: 600;\n color: white;\n font-size: 14px;\n height: 30px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.scheme-container\n{\n margin: 0 0 20px 0;\n padding: 30px 0;\n\n background: $scheme-container-background-color;\n box-shadow: 0 1px 2px 0 rgba($scheme-container-box-shadow-color,.15);\n\n .schemes\n {\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n flex-wrap: wrap;\n\n gap: 10px;\n\n > label\n {\n font-size: 12px;\n font-weight: bold;\n\n display: flex;\n flex-direction: column;\n\n margin: -20px 15px 0 0;\n\n @include text_headline();\n\n select\n {\n min-width: 130px;\n\n text-transform: uppercase;\n }\n }\n\n /* \n Target Authorize Button in schemes wrapper\n This was added here to fix responsiveness issues with the authorize button\n within the schemes wrapper without affecting other instances of it's usage\n */\n .auth-wrapper \n {\n flex: none;\n justify-content: none;\n \n .authorize\n {\n padding-right: 20px;\n margin: 0;\n\n display: flex;\n\n flex-wrap: nowrap;\n }\n }\n }\n}\n\n.loading-container\n{\n padding: 40px 0 60px;\n margin-top: 1em;\n min-height: 1px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n .loading\n {\n position: relative;\n\n\n &:after\n {\n font-size: 10px;\n font-weight: bold;\n\n position: absolute;\n top: 50%;\n left: 50%;\n\n content: 'loading';\n transform: translate(-50%,-50%);\n text-transform: uppercase;\n\n @include text_headline();\n }\n\n &:before\n {\n position: absolute;\n top: 50%;\n left: 50%;\n\n display: block;\n\n width: 60px;\n height: 60px;\n margin: -30px -30px;\n\n content: '';\n animation: rotation 1s infinite linear, opacity .5s;\n\n opacity: 1;\n border: 2px solid rgba($loading-container-before-border-color, .1);\n border-top-color: rgba($loading-container-before-border-top-color, .6);\n border-radius: 100%;\n\n backface-visibility: hidden;\n\n @keyframes rotation\n {\n to\n {\n transform: rotate(360deg);\n }\n }\n }\n }\n}\n\n.response-controls {\n padding-top: 1em;\n display: flex;\n}\n\n.response-control-media-type {\n margin-right: 1em;\n\n &--accept-controller {\n select {\n border-color: $response-content-type-controls-accept-header-select-border-color;\n }\n }\n\n &__accept-message {\n color: $response-content-type-controls-accept-header-small-font-color;\n font-size: .7em;\n }\n\n &__title {\n display: block;\n margin-bottom: 0.2em;\n font-size: .7em;\n }\n}\n\n.response-control-examples {\n &__title {\n display: block;\n margin-bottom: 0.2em;\n font-size: .7em;\n }\n}\n\n@keyframes blinker\n{\n 50%\n {\n opacity: 0;\n }\n}\n\n.hidden\n{\n display: none;\n}\n\n.no-margin\n{\n height: auto;\n border: none;\n margin: 0;\n padding: 0;\n}\n\n.float-right\n{\n float: right;\n}\n\n.svg-assets\n{\n position: absolute;\n width: 0;\n height: 0;\n}\n\nsection\n{\n h3\n {\n @include text_headline();\n }\n}\n\na.nostyle {\n text-decoration: inherit;\n color: inherit;\n cursor: pointer;\n display: inline;\n\n &:visited {\n text-decoration: inherit;\n color: inherit;\n cursor: pointer;\n }\n}\n\n.fallback\n{\n padding: 1em;\n color: #aaa;\n}\n\n.version-pragma {\n height: 100%;\n padding: 5em 0px;\n\n &__message {\n display: flex;\n justify-content: center;\n height: 100%;\n font-size: 1.2em;\n text-align: center;\n line-height: 1.5em;\n\n padding: 0px .6em;\n\n > div {\n max-width: 55ch;\n flex: 1;\n }\n\n code {\n background-color: #dedede;\n padding: 4px 4px 2px;\n white-space: pre;\n }\n }\n}\n\n.opblock-link\n{\n font-weight: normal;\n\n &.shown\n {\n font-weight: bold;\n }\n}\n\nspan\n{\n &.token-string\n {\n color: #555;\n }\n\n &.token-not-formatted\n {\n color: #555;\n font-weight: bold;\n }\n}\n",".btn\n{\n font-size: 14px;\n font-weight: bold;\n\n padding: 5px 23px;\n\n transition: all .3s;\n\n border: 2px solid $btn-border-color;\n border-radius: 4px;\n background: transparent;\n box-shadow: 0 1px 2px rgba($btn-box-shadow-color,.1);\n\n @include text_headline();\n\n &.btn-sm\n {\n font-size: 12px;\n padding: 4px 23px;\n }\n\n &[disabled]\n {\n cursor: not-allowed;\n\n opacity: .3;\n }\n\n &:hover\n {\n box-shadow: 0 0 5px rgba($btn-box-shadow-color,.3);\n }\n\n &.cancel\n {\n border-color: $btn-cancel-border-color;\n background-color: $btn-cancel-background-color;\n @include text_headline($btn-cancel-font-color);\n }\n\n &.authorize\n {\n line-height: 1;\n\n display: inline;\n\n color: $btn-authorize-font-color;\n border-color: $btn-authorize-border-color;\n background-color: $btn-authorize-background-color;\n\n span\n {\n float: left;\n\n padding: 4px 20px 0 0;\n }\n\n svg\n {\n fill: $btn-authorize-svg-fill-color;\n }\n }\n\n &.execute\n {\n background-color: $btn-execute-background-color-alt;\n color: $btn-execute-font-color;\n border-color: $btn-execute-border-color;\n }\n}\n\n.btn-group\n{\n display: flex;\n\n padding: 30px;\n\n .btn\n {\n flex: 1;\n\n &:first-child\n {\n border-radius: 4px 0 0 4px;\n }\n\n &:last-child\n {\n border-radius: 0 4px 4px 0;\n }\n }\n}\n\n.authorization__btn\n{\n padding: 0 0 0 10px;\n\n border: none;\n background: none;\n\n .locked\n {\n opacity: 1;\n }\n\n .unlocked\n {\n opacity: .4;\n }\n}\n\n.opblock-summary-control,\n.models-control,\n.model-box-control\n{\n all: inherit;\n flex: 1;\n border-bottom: 0;\n padding: 0;\n cursor: pointer;\n\n &:focus {\n outline: auto;\n }\n}\n\n.expand-methods,\n.expand-operation\n{\n border: none;\n background: none;\n\n svg\n {\n width: 20px;\n height: 20px;\n }\n}\n\n.expand-methods\n{\n padding: 0 10px;\n\n &:hover\n {\n svg\n {\n fill: $expand-methods-svg-fill-color-hover;\n }\n }\n\n svg\n {\n transition: all .3s;\n\n fill: $expand-methods-svg-fill-color;\n }\n}\n\nbutton\n{\n cursor: pointer;\n\n &.invalid\n {\n @include invalidFormElement();\n }\n}\n\n.copy-to-clipboard\n{\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n bottom: 10px;\n right: 100px;\n width: 30px;\n height: 30px;\n background: #7d8293;\n border-radius: 4px;\n border: none;\n\n button\n {\n flex-grow: 1;\n flex-shrink: 1;\n border: none;\n height: 25px;\n background: url(\"data:image/svg+xml, \") center center no-repeat;\n }\n}\n\n.copy-to-clipboard:active\n{\n background: #5e626f;\n}\n\n.opblock-control-arrow\n{\n border: none;\n text-align: center;\n background: none;\n}\n\n// overrides for smaller copy button for curl command\n.curl-command .copy-to-clipboard\n{\n bottom: 5px;\n right: 10px;\n width: 20px;\n height: 20px;\n\n button\n {\n height: 18px;\n }\n}\n\n// overrides for copy to clipboard button\n.opblock .opblock-summary .view-line-link.copy-to-clipboard\n{\n height: 26px;\n position: unset;\n}\n","// - - - - - - - - - - - - - - - - - - -\n// - - _mixins.scss module\n// styles for the _mixins.scss module\n@function calculateRem($size)\n{\n $remSize: $size / 16px;\n @return $remSize * 1rem;\n}\n\n@mixin font-size($size)\n{\n font-size: $size;\n font-size: calculateRem($size);\n}\n\n%clearfix\n{\n &:before,\n &:after\n {\n display: table;\n\n content: ' ';\n }\n &:after\n {\n clear: both;\n }\n}\n\n@mixin size($width, $height: $width)\n{\n width: $width;\n height: $height;\n}\n\n$ease: (\n in-quad: cubic-bezier(.550, .085, .680, .530),\n in-cubic: cubic-bezier(.550, .055, .675, .190),\n in-quart: cubic-bezier(.895, .030, .685, .220),\n in-quint: cubic-bezier(.755, .050, .855, .060),\n in-sine: cubic-bezier(.470, .000, .745, .715),\n in-expo: cubic-bezier(.950, .050, .795, .035),\n in-circ: cubic-bezier(.600, .040, .980, .335),\n in-back: cubic-bezier(.600, -.280, .735, .045),\n out-quad: cubic-bezier(.250, .460, .450, .940),\n out-cubic: cubic-bezier(.215, .610, .355, 1.000),\n out-quart: cubic-bezier(.165, .840, .440, 1.000),\n out-quint: cubic-bezier(.230, 1.000, .320, 1.000),\n out-sine: cubic-bezier(.390, .575, .565, 1.000),\n out-expo: cubic-bezier(.190, 1.000, .220, 1.000),\n out-circ: cubic-bezier(.075, .820, .165, 1.000),\n out-back: cubic-bezier(.175, .885, .320, 1.275),\n in-out-quad: cubic-bezier(.455, .030, .515, .955),\n in-out-cubic: cubic-bezier(.645, .045, .355, 1.000),\n in-out-quart: cubic-bezier(.770, .000, .175, 1.000),\n in-out-quint: cubic-bezier(.860, .000, .070, 1.000),\n in-out-sine: cubic-bezier(.445, .050, .550, .950),\n in-out-expo: cubic-bezier(1.000, .000, .000, 1.000),\n in-out-circ: cubic-bezier(.785, .135, .150, .860),\n in-out-back: cubic-bezier(.680, -.550, .265, 1.550)\n);\n\n@function ease($key)\n{\n @if map-has-key($ease, $key)\n {\n @return map-get($ease, $key);\n }\n\n @warn 'Unkown \\'#{$key}\\' in $ease.';\n @return null;\n}\n\n\n@mixin ease($key)\n{\n transition-timing-function: ease($key);\n}\n\n@mixin text-truncate\n{\n overflow: hidden;\n\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@mixin aspect-ratio($width, $height)\n{\n position: relative;\n &:before\n {\n display: block;\n\n width: 100%;\n padding-top: ($height / $width) * 100%;\n\n content: '';\n }\n > iframe\n {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n$browser-context: 16;\n\n@function em($pixels, $context: $browser-context)\n{\n @if (unitless($pixels))\n {\n $pixels: $pixels * 1px;\n }\n\n @if (unitless($context))\n {\n $context: $context * 1px;\n }\n\n @return $pixels / $context * 1em;\n}\n\n@mixin maxHeight($height)\n{\n @media (max-height: $height)\n {\n @content;\n }\n}\n\n\n@mixin breakpoint($class)\n{\n @if $class == tablet\n {\n @media (min-width: 768px) and (max-width: 1024px)\n {\n @content;\n }\n }\n\n @else if $class == mobile\n {\n @media (min-width: 320px) and (max-width : 736px)\n {\n @content;\n }\n }\n\n @else if $class == desktop\n {\n @media (min-width: 1400px)\n {\n @content;\n }\n }\n\n @else\n {\n @warn 'Breakpoint mixin supports: tablet, mobile, desktop';\n }\n}\n\n@mixin invalidFormElement() {\n animation: shake .4s 1;\n border-color: $_color-delete;\n background: lighten($_color-delete, 35%);\n}\n","select\n{\n font-size: 14px;\n font-weight: bold;\n\n padding: 5px 40px 5px 10px;\n\n border: 2px solid $form-select-border-color;\n border-radius: 4px;\n background: $form-select-background-color url('data:image/svg+xml, ') right 10px center no-repeat;\n background-size: 20px;\n box-shadow: 0 1px 2px 0 rgba($form-select-box-shadow-color, .25);\n\n @include text_headline();\n appearance: none;\n\n &[multiple]\n {\n margin: 5px 0;\n padding: 5px;\n\n background: $form-select-background-color;\n }\n\n &.invalid {\n @include invalidFormElement();\n }\n}\n\n.opblock-body select\n{\n min-width: 230px;\n @media (max-width: 768px)\n {\n min-width: 180px;\n }\n @media (max-width: 640px)\n {\n width: 100%;\n min-width: 100%;\n }\n}\n\nlabel\n{\n font-size: 12px;\n font-weight: bold;\n\n margin: 0 0 5px 0;\n\n @include text_headline();\n}\n\ninput[type=text],\ninput[type=password],\ninput[type=search],\ninput[type=email],\ninput[type=file]\n{\n line-height: 1;\n\n @media (max-width: 768px) {\n max-width: 175px;\n }\n}\n\n\ninput[type=text],\ninput[type=password],\ninput[type=search],\ninput[type=email],\ninput[type=file],\ntextarea\n{\n min-width: 100px;\n margin: 5px 0;\n padding: 8px 10px;\n\n border: 1px solid $form-input-border-color;\n border-radius: 4px;\n background: $form-input-background-color;\n\n\n &.invalid\n {\n @include invalidFormElement();\n }\n\n}\n\ninput,\ntextarea,\nselect {\n &[disabled] {\n // opacity: 0.85;\n background-color: #fafafa;\n color: #888;\n cursor: not-allowed;\n }\n}\n\nselect[disabled] {\n border-color: #888;\n}\n\ntextarea[disabled] {\n background-color: #41444e;\n color: #fff;\n}\n\n@keyframes shake\n{\n 10%,\n 90%\n {\n transform: translate3d(-1px, 0, 0);\n }\n\n 20%,\n 80%\n {\n transform: translate3d(2px, 0, 0);\n }\n\n 30%,\n 50%,\n 70%\n {\n transform: translate3d(-4px, 0, 0);\n }\n\n 40%,\n 60%\n {\n transform: translate3d(4px, 0, 0);\n }\n}\n\ntextarea\n{\n font-size: 12px;\n\n width: 100%;\n min-height: 280px;\n padding: 10px;\n\n border: none;\n border-radius: 4px;\n outline: none;\n background: rgba($form-textarea-background-color,.8);\n\n @include text_code();\n\n &:focus\n {\n border: 2px solid $form-textarea-focus-border-color;\n }\n\n &.curl\n {\n font-size: 12px;\n\n min-height: 100px;\n margin: 0;\n padding: 10px;\n\n resize: none;\n\n border-radius: 4px;\n background: $form-textarea-curl-background-color;\n\n @include text_code($form-textarea-curl-font-color);\n }\n}\n\n\n.checkbox\n{\n padding: 5px 0 10px;\n\n transition: opacity .5s;\n\n color: $form-checkbox-label-font-color;\n\n label\n {\n display: flex;\n }\n\n p\n {\n font-weight: normal !important;\n font-style: italic;\n\n margin: 0 !important;\n\n @include text_code();\n }\n\n input[type=checkbox]\n {\n display: none;\n\n & + label > .item\n {\n position: relative;\n top: 3px;\n\n display: inline-block;\n\n width: 16px;\n height: 16px;\n margin: 0 8px 0 0;\n padding: 5px;\n\n cursor: pointer;\n\n border-radius: 1px;\n background: $form-checkbox-background-color;\n box-shadow: 0 0 0 2px $form-checkbox-box-shadow-color;\n\n flex: none;\n\n &:active\n {\n transform: scale(.9);\n }\n }\n\n &:checked + label > .item\n {\n background: $form-checkbox-background-color url('data:image/svg+xml, ') center center no-repeat;\n }\n }\n}\n",".dialog-ux\n{\n position: fixed;\n z-index: 9999;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n .backdrop-ux\n {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n background: rgba($dialog-ux-backdrop-background-color,.8);\n }\n\n .modal-ux\n {\n position: absolute;\n z-index: 9999;\n top: 50%;\n left: 50%;\n\n width: 100%;\n min-width: 300px;\n max-width: 650px;\n\n transform: translate(-50%,-50%);\n\n border: 1px solid $dialog-ux-modal-border-color;\n border-radius: 4px;\n background: $dialog-ux-modal-background-color;\n box-shadow: 0 10px 30px 0 rgba($dialog-ux-modal-box-shadow-color,.20);\n }\n\n .modal-ux-content\n {\n overflow-y: auto;\n\n max-height: 540px;\n padding: 20px;\n\n p\n {\n font-size: 12px;\n\n margin: 0 0 5px 0;\n\n color: $dialog-ux-modal-content-font-color;\n\n @include text_body();\n }\n\n h4\n {\n font-size: 18px;\n font-weight: 600;\n\n margin: 15px 0 0 0;\n\n @include text_headline();\n }\n }\n\n .modal-ux-header\n {\n display: flex;\n\n padding: 12px 0;\n\n border-bottom: 1px solid $dialog-ux-modal-header-border-bottom-color;\n\n align-items: center;\n\n .close-modal\n {\n padding: 0 10px;\n\n border: none;\n background: none;\n\n appearance: none;\n }\n\n\n h3\n {\n font-size: 20px;\n font-weight: 600;\n\n margin: 0;\n padding: 0 20px;\n\n flex: 1;\n @include text_headline();\n }\n }\n}\n",".model\n{\n font-size: 12px;\n font-weight: 300;\n\n @include text_code();\n\n .deprecated\n {\n span,\n td\n {\n color: $model-deprecated-font-color !important;\n }\n\n > td:first-of-type {\n text-decoration: line-through;\n }\n }\n &-toggle\n {\n font-size: 10px;\n\n position: relative;\n top: 6px;\n\n display: inline-block;\n\n margin: auto .3em;\n\n cursor: pointer;\n transition: transform .15s ease-in;\n transform: rotate(90deg);\n transform-origin: 50% 50%;\n\n &.collapsed\n {\n transform: rotate(0deg);\n }\n\n &:after\n {\n display: block;\n\n width: 20px;\n height: 20px;\n\n content: '';\n\n background: url('data:image/svg+xml, ') center no-repeat;\n background-size: 100%;\n }\n }\n\n &-jump-to-path\n {\n position: relative;\n\n cursor: pointer;\n\n .view-line-link\n {\n position: absolute;\n top: -.4em;\n\n cursor: pointer;\n }\n }\n\n &-title\n {\n position: relative;\n\n &:hover .model-hint\n {\n visibility: visible;\n }\n }\n\n &-hint\n {\n position: absolute;\n top: -1.8em;\n\n visibility: hidden;\n\n padding: .1em .5em;\n\n white-space: nowrap;\n\n color: $model-hint-font-color;\n border-radius: 4px;\n background: rgba($model-hint-background-color,.7);\n }\n\n p\n {\n margin: 0 0 1em 0;\n }\n\n .property\n {\n color: #999;\n font-style: italic;\n\n &.primitive\n {\n color: #6b6b6b;\n }\n }\n\n .external-docs\n {\n color: #666;\n font-weight: normal;\n }\n}\n\ntable.model\n{\n tr\n {\n &.description\n {\n color: #666;\n font-weight: normal;\n \n td:first-child\n {\n font-weight: bold;\n }\n }\n\n &.property-row\n {\n &.required td:first-child\n {\n font-weight: bold;\n }\n\n td\n {\n vertical-align: top;\n\n &:first-child\n {\n padding-right: 0.2em;\n }\n }\n\n .star\n {\n color: red;\n }\n }\n\n &.extension\n {\n color: #777;\n\n td:last-child\n {\n vertical-align: top;\n }\n }\n\n &.external-docs\n {\n td:first-child\n {\n font-weight: bold;\n }\n }\n\n .renderedMarkdown p:first-child\n {\n margin-top: 0;\n } \n }\n}\n\nsection.models\n{\n margin: 30px 0;\n\n border: 1px solid rgba($section-models-border-color, .3);\n border-radius: 4px;\n\n .pointer\n {\n cursor: pointer;\n }\n\n &.is-open\n {\n padding: 0 0 20px;\n h4\n {\n margin: 0 0 5px 0;\n\n border-bottom: 1px solid rgba($section-models-isopen-h4-border-bottom-color, .3);\n }\n }\n h4\n {\n font-size: 16px;\n\n display: flex;\n align-items: center;\n\n margin: 0;\n padding: 10px 20px 10px 10px;\n\n cursor: pointer;\n transition: all .2s;\n\n @include text_headline($section-models-h4-font-color);\n\n svg\n {\n transition: all .4s;\n }\n\n span\n {\n flex: 1;\n }\n\n &:hover\n {\n background: rgba($section-models-h4-background-color-hover,.02);\n }\n }\n\n h5\n {\n font-size: 16px;\n\n margin: 0 0 10px 0;\n\n @include text_headline($section-models-h5-font-color);\n }\n\n .model-jump-to-path\n {\n position: relative;\n top: 5px;\n }\n\n .model-container\n {\n margin: 0 20px 15px;\n position: relative;\n\n transition: all .5s;\n\n border-radius: 4px;\n background: rgba($section-models-model-container-background-color,.05);\n\n &:hover\n {\n background: rgba($section-models-model-container-background-color,.07);\n }\n\n &:first-of-type\n {\n margin: 20px;\n }\n\n &:last-of-type\n {\n margin: 0 20px;\n }\n\n .models-jump-to-path {\n position: absolute;\n top: 8px;\n right: 5px;\n opacity: 0.65;\n }\n }\n\n .model-box\n {\n background: none;\n }\n}\n\n\n.model-box\n{\n padding: 10px;\n display: inline-block;\n\n border-radius: 4px;\n background: rgba($section-models-model-box-background-color,.1);\n\n .model-jump-to-path\n {\n position: relative;\n top: 4px;\n }\n\n &.deprecated\n {\n opacity: .5;\n }\n}\n\n\n.model-title\n{\n font-size: 16px;\n\n @include text_headline($section-models-model-title-font-color);\n\n img\n {\n margin-left: 1em;\n position: relative;\n bottom: 0px;\n }\n}\n\n.model-deprecated-warning\n{\n font-size: 16px;\n font-weight: 600;\n\n margin-right: 1em;\n\n @include text_headline($_color-delete);\n}\n\n\nspan\n{\n > span.model\n {\n .brace-close\n {\n padding: 0 0 0 10px;\n }\n }\n}\n\n.prop-name\n{\n display: inline-block;\n\n margin-right: 1em;\n}\n\n.prop-type\n{\n color: $prop-type-font-color;\n}\n\n.prop-enum\n{\n display: block;\n}\n.prop-format\n{\n color: $prop-format-font-color;\n}\n",".servers\n{\n > label\n {\n font-size: 12px;\n\n margin: -20px 15px 0 0;\n\n @include text_headline();\n\n select\n {\n min-width: 130px;\n max-width: 100%;\n width: 100%;\n }\n }\n\n h4.message {\n padding-bottom: 2em;\n }\n\n table {\n tr {\n width: 30em;\n }\n td {\n display: inline-block;\n max-width: 15em;\n vertical-align: middle;\n padding-top: 10px;\n padding-bottom: 10px;\n\n &:first-of-type {\n padding-right: 1em;\n }\n\n input {\n width: 100%;\n height: 100%;\n }\n }\n }\n\n .computed-url {\n margin: 2em 0;\n\n code {\n display: inline-block;\n padding: 4px;\n font-size: 16px;\n margin: 0 1em;\n }\n }\n}\n\n.servers-title {\n font-size: 12px;\n font-weight: bold;\n}\n\n.operation-servers {\n h4.message {\n margin-bottom: 2em;\n }\n}\n","table\n{\n width: 100%;\n padding: 0 10px;\n\n border-collapse: collapse;\n\n &.model\n {\n tbody\n {\n tr\n {\n td\n {\n padding: 0;\n\n vertical-align: top;\n\n &:first-of-type\n {\n width: 174px;\n padding: 0 0 0 2em;\n }\n }\n }\n }\n }\n\n &.headers\n {\n td\n {\n font-size: 12px;\n font-weight: 300;\n\n vertical-align: middle;\n\n @include text_code();\n }\n\n .header-example\n {\n color: #999;\n font-style: italic;\n }\n }\n\n tbody\n {\n tr\n {\n td\n {\n padding: 10px 0 0 0;\n\n vertical-align: top;\n\n &:first-of-type\n {\n min-width: 6em;\n padding: 10px 0;\n }\n }\n }\n }\n\n thead\n {\n tr\n {\n th,\n td\n {\n font-size: 12px;\n font-weight: bold;\n\n padding: 12px 0;\n\n text-align: left;\n\n border-bottom: 1px solid rgba($table-thead-td-border-bottom-color, .2);\n\n @include text_body();\n }\n }\n }\n}\n\n.parameters-col_description\n{\n width: 99%; // forces other columns to shrink to their content widths\n margin-bottom: 2em;\n input\n {\n width: 100%;\n max-width: 340px;\n }\n\n select {\n border-width: 1px;\n }\n\n .markdown, .renderedMarkdown {\n p {\n margin: 0;\n }\n }\n}\n\n.parameter__name\n{\n font-size: 16px;\n font-weight: normal;\n\n // hack to give breathing room to the name column\n // TODO: refactor all of this to flexbox\n margin-right: .75em;\n\n @include text_headline();\n\n &.required\n {\n font-weight: bold;\n\n span\n {\n color: red;\n }\n\n &:after\n {\n font-size: 10px;\n\n position: relative;\n top: -6px;\n\n padding: 5px;\n\n content: 'required';\n\n color: rgba($table-parameter-name-required-font-color, .6);\n }\n }\n}\n\n.parameter__in,\n.parameter__extension\n{\n font-size: 12px;\n font-style: italic;\n\n @include text_code($table-parameter-in-font-color);\n}\n\n.parameter__deprecated\n{\n font-size: 12px;\n font-style: italic;\n\n @include text_code($table-parameter-deprecated-font-color);\n}\n\n.parameter__empty_value_toggle {\n display: block;\n font-size: 13px;\n padding-top: 5px;\n padding-bottom: 12px;\n\n input {\n margin-right: 7px;\n width: auto;\n }\n\n &.disabled {\n opacity: 0.7;\n }\n}\n\n\n.table-container\n{\n padding: 20px;\n}\n\n\n.response-col_description {\n width: 99%; // forces other columns to shrink to their content widths\n\n .markdown, .renderedMarkdown {\n p {\n margin: 0;\n }\n }\n}\n\n.response-col_links {\n min-width: 6em;\n}\n\n.response__extension\n{\n font-size: 12px;\n font-style: italic;\n\n @include text_code($table-parameter-in-font-color);\n}\n",".topbar\n{\n padding: 10px 0;\n\n background-color: $topbar-background-color;\n .topbar-wrapper\n {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n }\n @media (max-width: 550px) {\n .topbar-wrapper\n {\n flex-direction: column;\n align-items: start;\n }\n }\n\n a\n {\n font-size: 1.5em;\n font-weight: bold;\n\n display: flex;\n align-items: center;\n flex: 1;\n\n max-width: 300px;\n\n text-decoration: none;\n\n @include text_headline($topbar-link-font-color);\n\n span\n {\n margin: 0;\n padding: 0 10px;\n }\n }\n\n .download-url-wrapper\n {\n display: flex;\n flex: 3;\n justify-content: flex-end;\n\n input[type=text]\n {\n width: 100%;\n max-width: 100%;\n margin: 0;\n\n border: 2px solid $topbar-download-url-wrapper-element-border-color;\n border-radius: 4px 0 0 4px;\n outline: none;\n }\n\n .select-label\n {\n display: flex;\n align-items: center;\n\n width: 100%;\n max-width: 600px;\n margin: 0;\n color: #f0f0f0;\n span\n {\n font-size: 16px;\n\n flex: 1;\n\n padding: 0 10px 0 0;\n\n text-align: right;\n }\n\n select\n {\n flex: 2;\n\n width: 100%;\n\n border: 2px solid $topbar-download-url-wrapper-element-border-color;\n outline: none;\n box-shadow: none;\n }\n }\n\n\n .download-url-button\n {\n font-size: 16px;\n font-weight: bold;\n\n padding: 4px 30px;\n\n border: none;\n border-radius: 0 4px 4px 0;\n background: $topbar-download-url-button-background-color;\n\n @include text_headline($topbar-download-url-button-font-color);\n }\n }\n @media (max-width: 550px) {\n .download-url-wrapper\n {\n width: 100%;\n }\n }\n}\n",".info\n{\n margin: 50px 0;\n\n &.failed-config\n { \n max-width: 880px;\n margin-left: auto;\n margin-right: auto;\n text-align: center\n }\n\n hgroup.main\n {\n margin: 0 0 20px 0;\n a\n {\n font-size: 12px;\n }\n }\n pre \n {\n font-size: 14px;\n }\n p, li, table\n {\n font-size: 14px;\n\n @include text_body();\n }\n\n h1, h2, h3, h4, h5\n {\n @include text_body();\n }\n\n a\n {\n font-size: 14px;\n\n transition: all .4s;\n\n @include text_body($info-link-font-color);\n\n &:hover\n {\n color: darken($info-link-font-color-hover, 15%);\n }\n }\n > div\n {\n margin: 0 0 5px 0;\n }\n\n .base-url\n {\n font-size: 12px;\n font-weight: 300 !important;\n\n margin: 0;\n\n @include text_code();\n }\n\n .title\n {\n font-size: 36px;\n\n margin: 0;\n\n @include text_body();\n\n small\n {\n font-size: 10px;\n\n position: relative;\n top: -5px;\n\n display: inline-block;\n\n margin: 0 0 0 5px;\n padding: 2px 4px;\n\n vertical-align: super;\n\n border-radius: 57px;\n background: $info-title-small-background-color;\n \n &.version-stamp\n {\n background-color: #89bf04;\n }\n\n pre\n {\n margin: 0;\n padding: 0;\n\n @include text_headline($info-title-small-pre-font-color);\n }\n }\n }\n}\n",".auth-btn-wrapper\n{\n display: flex;\n\n padding: 10px 0;\n\n justify-content: center;\n\n .btn-done {\n margin-right: 1em;\n }\n}\n\n.auth-wrapper\n{\n display: flex;\n\n flex: 1;\n justify-content: flex-end;\n\n .authorize\n {\n padding-right: 20px;\n margin-left: 10px;\n margin-right: 10px;\n }\n}\n\n.auth-container\n{\n margin: 0 0 10px 0;\n padding: 10px 20px;\n\n border-bottom: 1px solid $auth-container-border-color;\n\n &:last-of-type\n {\n margin: 0;\n padding: 10px 20px;\n\n border: 0;\n }\n\n h4\n {\n margin: 5px 0 15px 0 !important;\n }\n\n .wrapper\n {\n margin: 0;\n padding: 0;\n }\n\n input[type=text],\n input[type=password]\n {\n min-width: 230px;\n }\n\n .errors\n {\n font-size: 12px;\n\n padding: 10px;\n\n border-radius: 4px;\n\n background-color: #ffeeee;\n\n color: red;\n\n margin: 1em;\n\n @include text_code();\n\n b\n {\n text-transform: capitalize;\n margin-right: 1em;\n }\n }\n}\n\n.scopes\n{\n h2\n {\n font-size: 14px;\n\n @include text_headline();\n\n a\n {\n font-size: 12px;\n color: $auth-select-all-none-link-font-color;\n cursor: pointer;\n padding-left: 10px;\n text-decoration: underline;\n }\n }\n}\n\n.scope-def\n{\n padding: 0 0 20px 0;\n}\n",".errors-wrapper\n{\n margin: 20px;\n padding: 10px 20px;\n\n animation: scaleUp .5s;\n\n border: 2px solid $_color-delete;\n border-radius: 4px;\n background: rgba($_color-delete, .1);\n\n .error-wrapper\n {\n margin: 0 0 10px 0;\n }\n\n .errors\n {\n h4\n {\n font-size: 14px;\n\n margin: 0;\n\n @include text_code();\n }\n\n small\n {\n color: $errors-wrapper-errors-small-font-color;\n }\n\n .message\n { \n white-space: pre-line;\n \n &.thrown\n {\n max-width: 100%;\n }\n }\n\n .error-line\n {\n text-decoration: underline;\n cursor: pointer;\n }\n }\n\n hgroup\n {\n display: flex;\n\n align-items: center;\n\n h4\n {\n font-size: 20px;\n\n margin: 0;\n\n flex: 1;\n @include text_headline();\n }\n }\n}\n\n\n@keyframes scaleUp\n{\n 0%\n {\n transform: scale(.8);\n\n opacity: 0;\n }\n 100%\n {\n transform: scale(1);\n\n opacity: 1;\n }\n}\n",".Resizer.vertical.disabled {\n display: none;\n}",".markdown, .renderedMarkdown {\n p, pre {\n margin: 1em auto;\n\n word-break: break-all; /* Fallback trick */\n word-break: break-word;\n }\n pre {\n color: black;\n font-weight: normal;\n white-space: pre-wrap;\n background: none;\n padding: 0px;\n }\n\n code {\n font-size: 14px;\n padding: 5px 7px;\n\n border-radius: 4px;\n background: rgba($info-code-background-color,.05);\n\n @include text_code($info-code-font-color);\n }\n\n pre > code {\n display: block;\n }\n}\n",".json-schema-2020-12 {\n margin: 0 20px 15px 20px;\n border-radius: 4px;\n padding: 12px 0 12px 20px;\n background-color: rgba($section-models-model-container-background-color, .05);\n\n &:first-of-type {\n margin: 20px;\n }\n\n &:last-of-type {\n margin: 0 20px;\n }\n\n &--embedded {\n background-color: inherit;\n padding: 0 inherit 0 inherit;\n }\n\n &-body {\n @include expansion-border;\n margin: 2px 0;\n\n &--collapsed {\n display: none;\n }\n }\n}\n\n\n","@mixin expansion-border {\n margin: 0 0 0 20px;\n border-left: 1px dashed rgba($section-models-model-container-background-color, 0.1);\n}\n\n@import './JSONSchema/json-schema';\n@import './Accordion/accordion';\n@import './ExpandDeepButton/expand-deep-button';\n@import './keywords/all';\n",".json-schema-2020-12-accordion {\n outline: none;\n border: none;\n padding-left: 0;\n\n &__children {\n display: inline-block;\n }\n\n &__icon {\n width: 18px;\n height: 18px;\n display: inline-block;\n vertical-align: bottom;\n\n &--expanded {\n transition: transform .15s ease-in;\n transform: rotate(-90deg);\n transform-origin: 50% 50%;\n }\n\n &--collapsed {\n transition: transform .15s ease-in;\n transform: rotate(0deg);\n transform-origin: 50% 50%;\n }\n\n & svg {\n height: 20px;\n width: 20px;\n }\n }\n}\n\n",".json-schema-2020-12-expand-deep-button {\n @include text_headline($section-models-model-title-font-color);\n font-size: 12px;\n color: rgb(175, 174, 174);\n border: none;\n padding-right: 0;\n}\n",".json-schema-2020-12-keyword {\n margin: 5px 0 5px 0;\n\n &__children {\n @include expansion-border;\n padding: 0;\n\n &--collapsed {\n display: none;\n }\n }\n\n &__name {\n font-size: 12px;\n margin-left: 20px;\n font-weight: bold;\n\n &--primary {\n color: $text-code-default-font-color;\n font-style: normal;\n }\n\n &--secondary {\n color: #6b6b6b;\n font-style: italic;\n }\n }\n\n &__value {\n color: #6b6b6b;\n font-style: italic;\n font-size: 12px;\n font-weight: normal;\n\n &--primary {\n color: $text-code-default-font-color;\n font-style: normal;\n }\n\n &--secondary {\n color: #6b6b6b;\n font-style: italic;\n }\n\n &--const {\n @include text_code();\n color: #6b6b6b;\n font-style: normal;\n display: inline-block;\n margin-left: 10px;\n line-height: 1.5;\n padding: 1px 4px 1px 4px;\n border: 1px dashed #6b6b6b;\n border-radius: 4px;\n }\n\n &--warning {\n @extend .json-schema-2020-12-keyword__value--const;\n color: red;\n border: 1px dashed red;\n }\n }\n}\n.json-schema-2020-12-keyword__name--secondary + .json-schema-2020-12-keyword__value--secondary::before {\n content: '='\n}\n\n.json-schema-2020-12__attribute {\n font-family: monospace;\n color: $text-code-default-font-color;\n font-size: 12px;\n text-transform: lowercase;\n padding-left: 10px;\n\n &--primary {\n color: $prop-type-font-color;\n }\n\n &--muted {\n color: gray;\n }\n\n &--warning {\n color: red;\n }\n}\n\n@import './$vocabulary/$vocabulary';\n@import './Description/description';\n@import './Title/title';\n@import './Properties/properties';\n@import './PatternProperties/pattern-properties';\n@import './Enum/enum';\n@import './Constraint/constraint';\n@import './DependentRequired/dependent-required';\n",".json-schema-2020-12 {\n &-keyword--\\$vocabulary {\n ul {\n @include expansion-border;\n }\n }\n\n &-\\$vocabulary-uri {\n margin-left: 35px;\n\n &--disabled {\n text-decoration: line-through;\n }\n }\n}\n",".json-schema-2020-12-keyword--description {\n color: #6b6b6b;\n font-size: 12px;\n margin-left: 20px;\n\n & p {\n margin: 0;\n }\n}\n",".json-schema-2020-12 {\n &__title {\n @include text_headline($section-models-model-title-font-color);\n display: inline-block;\n font-weight: bold;\n font-size: 12px;\n line-height: normal;\n\n & .json-schema-2020-12-keyword__name {\n margin: 0;\n }\n }\n\n &-property {\n margin: 7px 0;\n\n .json-schema-2020-12__title {\n @include text_code();\n font-size: 12px;\n vertical-align: middle;\n }\n }\n}\n",".json-schema-2020-12 {\n &-keyword--properties {\n & > ul {\n margin: 0;\n padding: 0;\n border: none;\n }\n }\n\n &-property {\n list-style-type: none;\n\n &--required {\n & > .json-schema-2020-12:first-of-type > .json-schema-2020-12-head .json-schema-2020-12__title:after {\n content: '*';\n color: red;\n font-weight: bold;\n }\n }\n }\n}\n",".json-schema-2020-12 {\n &-keyword--patternProperties {\n ul {\n margin: 0;\n padding: 0;\n border: none;\n }\n\n .json-schema-2020-12__title:first-of-type::before {\n color: $prop-type-font-color;\n content: \"/\";\n }\n\n .json-schema-2020-12__title:first-of-type::after {\n color: $prop-type-font-color;\n content: \"/\";\n }\n }\n}\n",".json-schema-2020-12-keyword--enum {\n & > ul {\n display: inline-block;\n padding: 0;\n margin: 0;\n\n li {\n display: inline;\n list-style-type: none;\n }\n }\n}\n",".json-schema-2020-12__constraint {\n @include text_code();\n margin-left: 10px;\n line-height: 1.5;\n padding: 1px 3px;\n color: white;\n background-color: #805AD5;\n border-radius: 4px;\n\n &--string {\n color: white;\n background-color: #D69E2E;\n }\n}\n",".json-schema-2020-12-keyword--dependentRequired {\n & > ul {\n display: inline-block;\n padding: 0;\n margin: 0;\n\n li {\n display: inline;\n list-style-type: none;\n }\n }\n}\n",".model-box {\n // inferred names of Schema Objects\n & .json-schema-2020-12:not(.json-schema-2020-12--embedded) > .json-schema-2020-12-head .json-schema-2020-12__title:first-of-type {\n font-size: 16px;\n }\n\n & > .json-schema-2020-12 {\n margin: 0;\n }\n\n .json-schema-2020-12 {\n padding: 0;\n background-color: transparent;\n }\n\n .json-schema-2020-12-accordion, .json-schema-2020-12-expand-deep-button {\n background-color: transparent;\n }\n}\n",".models .json-schema-2020-12:not(.json-schema-2020-12--embedded) > .json-schema-2020-12-head .json-schema-2020-12__title:first-of-type {\n font-size: 16px;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/v6.0.0-beta01/assets/stylesheets/swagger-ui.js b/v6.0.0-beta01/assets/stylesheets/swagger-ui.js new file mode 100644 index 000000000..7a06a0a09 --- /dev/null +++ b/v6.0.0-beta01/assets/stylesheets/swagger-ui.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SwaggerUICore=t():e.SwaggerUICore=t()}(this,(function(){return(()=>{var e={6024:(e,t,n)=>{"use strict";n.d(t,{Z:()=>R});var r=n(4250),a=n.n(r),o=n(6349),s=n.n(o),l=n(4606),i=n.n(l),c=n(4555),u=n.n(c),p=n(4291),d=n.n(p),m=n(1885),h=n.n(m),f=n(1093),g=n.n(f),v=n(4883),y=n.n(v),E=n(8493),S=n.n(E),b=n(3942),C=n.n(b),x=n(6689),w=n.n(x);const _=require("react-immutable-pure-component");var A=n.n(_),k=n(8082),N=n.n(k),I=n(580),q=n.n(I),R=function(e){d()(r,e);var t=h()(r);function r(){var e,n;s()(this,r);for(var a=arguments.length,o=new Array(a),l=0;l{"use strict";n.d(t,{Z:()=>k});var r=n(6768),a=n.n(r),o=n(6349),s=n.n(o),l=n(4606),i=n.n(l),c=n(4555),u=n.n(c),p=n(4291),d=n.n(p),m=n(1885),h=n.n(m),f=n(1093),g=n.n(f),v=n(7252),y=n.n(v),E=n(4883),S=n.n(E),b=n(6689),C=n.n(b),x=n(3883),w=n.n(x),_=(n(580),n(1890)),A=n(7504),k=function(e){d()(n,e);var t=h()(n);function n(e,r){var a;s()(this,n),a=t.call(this,e,r),g()(u()(a),"getDefinitionUrl",(function(){var e=a.props.specSelectors;return new(w())(e.url(),A.Z.location).toString()}));var o=(0,e.getConfigs)().validatorUrl;return a.state={url:a.getDefinitionUrl(),validatorUrl:void 0===o?"https://validator.swagger.io/validator":o},a}return i()(n,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=(0,e.getConfigs)().validatorUrl;this.setState({url:this.getDefinitionUrl(),validatorUrl:void 0===t?"https://validator.swagger.io/validator":t})}},{key:"render",value:function(){var e,t,n=(0,this.props.getConfigs)().spec,r=(0,_.Nm)(this.state.validatorUrl);return"object"===a()(n)&&y()(n).length?null:this.state.url&&(0,_.hW)(this.state.validatorUrl)&&(0,_.hW)(this.state.url)?C().createElement("span",{className:"float-right"},C().createElement("a",{target:"_blank",rel:"noopener noreferrer",href:S()(e="".concat(r,"/debug?url=")).call(e,encodeURIComponent(this.state.url))},C().createElement(N,{src:S()(t="".concat(r,"?url=")).call(t,encodeURIComponent(this.state.url)),alt:"Online validator badge"}))):null}}]),n}(C().Component),N=function(e){d()(n,e);var t=h()(n);function n(e){var r;return s()(this,n),(r=t.call(this,e)).state={loaded:!1,error:!1},r}return i()(n,[{key:"componentDidMount",value:function(){var e=this,t=new Image;t.onload=function(){e.setState({loaded:!0})},t.onerror=function(){e.setState({error:!0})},t.src=this.props.src}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=this;if(e.src!==this.props.src){var n=new Image;n.onload=function(){t.setState({loaded:!0})},n.onerror=function(){t.setState({error:!0})},n.src=e.src}}},{key:"render",value:function(){return this.state.error?C().createElement("img",{alt:"Error"}):this.state.loaded?C().createElement("img",{src:this.props.src,alt:this.props.alt}):null}}]),n}(C().Component)},2552:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d,s:()=>m});var r=n(6689),a=n.n(r),o=(n(580),n(963));const s=require("remarkable/linkify"),l=require("dompurify");var i=n.n(l),c=n(9003),u=n.n(c);function p(e){var t=e.source,n=e.className,r=void 0===n?"":n,l=e.getConfigs;if("string"!=typeof t)return null;var i=new o.Remarkable({html:!0,typographer:!0,breaks:!0,linkTarget:"_blank"}).use(s.linkify);i.core.ruler.disable(["replacements","smartquotes"]);var c=l().useUnsafeMarkdown,p=i.render(t),d=m(p,{useUnsafeMarkdown:c});return t&&p&&d?a().createElement("div",{className:u()(r,"markdown"),dangerouslySetInnerHTML:{__html:d}}):null}i().addHook&&i().addHook("beforeSanitizeElements",(function(e){return e.href&&e.setAttribute("rel","noopener noreferrer"),e})),p.defaultProps={getConfigs:function(){return{useUnsafeMarkdown:!1}}};const d=p;function m(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.useUnsafeMarkdown,r=void 0!==n&&n,a=r,o=r?[]:["style","class"];return r&&!m.hasWarnedAboutDeprecation&&(console.warn("useUnsafeMarkdown display configuration parameter is deprecated since >3.26.0 and will be removed in v4.0.0."),m.hasWarnedAboutDeprecation=!0),i().sanitize(e,{ADD_ATTR:["target"],FORBID_TAGS:["style","form"],ALLOW_DATA_ATTR:a,FORBID_ATTR:o})}m.hasWarnedAboutDeprecation=!1},5308:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r,a=n(4235),o=n.n(a),s=n(874),l=n.n(s),i=n(1890),c=n(9595),u=n(5102),p={};const d=p;o()(r=l()(u).call(u)).call(r,(function(e){if("./index.js"!==e){var t=u(e);p[(0,i.Zl)(e)]=t.default?t.default:t}})),p.SafeRender=c.default},5812:(e,t,n)=>{"use strict";n.r(t),n.d(t,{SHOW_AUTH_POPUP:()=>m,AUTHORIZE:()=>h,LOGOUT:()=>f,PRE_AUTHORIZE_OAUTH2:()=>g,AUTHORIZE_OAUTH2:()=>v,VALIDATE:()=>y,CONFIGURE_AUTH:()=>E,RESTORE_AUTHORIZATION:()=>S,showDefinitions:()=>b,authorize:()=>C,authorizeWithPersistOption:()=>x,logout:()=>w,logoutWithPersistOption:()=>_,preAuthorizeImplicit:()=>A,authorizeOauth2:()=>k,authorizeOauth2WithPersistOption:()=>N,authorizePassword:()=>I,authorizeApplication:()=>q,authorizeAccessCodeWithFormParams:()=>R,authorizeAccessCodeWithBasicAuthentication:()=>P,authorizeRequest:()=>T,configureAuth:()=>O,restoreAuthorization:()=>M,persistAuthorizationIfNeeded:()=>j,authPopup:()=>V});var r=n(6768),a=n.n(r),o=n(8344),s=n.n(o),l=n(4994),i=n.n(l),c=n(3883),u=n.n(c),p=n(7504),d=n(1890),m="show_popup",h="authorize",f="logout",g="pre_authorize_oauth2",v="authorize_oauth2",y="validate",E="configure_auth",S="restore_authorization";function b(e){return{type:m,payload:e}}function C(e){return{type:h,payload:e}}var x=function(e){return function(t){var n=t.authActions;n.authorize(e),n.persistAuthorizationIfNeeded()}};function w(e){return{type:f,payload:e}}var _=function(e){return function(t){var n=t.authActions;n.logout(e),n.persistAuthorizationIfNeeded()}},A=function(e){return function(t){var n=t.authActions,r=t.errActions,a=e.auth,o=e.token,l=e.isValid,i=a.schema,c=a.name,u=i.get("flow");delete p.Z.swaggerUIRedirectOauth2,"accessCode"===u||l||r.newAuthErr({authId:c,source:"auth",level:"warning",message:"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"}),o.error?r.newAuthErr({authId:c,source:"auth",level:"error",message:s()(o)}):n.authorizeOauth2WithPersistOption({auth:a,token:o})}};function k(e){return{type:v,payload:e}}var N=function(e){return function(t){var n=t.authActions;n.authorizeOauth2(e),n.persistAuthorizationIfNeeded()}},I=function(e){return function(t){var n=t.authActions,r=e.schema,a=e.name,o=e.username,s=e.password,l=e.passwordType,c=e.clientId,u=e.clientSecret,p={grant_type:"password",scope:e.scopes.join(" "),username:o,password:s},m={};switch(l){case"request-body":!function(e,t,n){t&&i()(e,{client_id:t});n&&i()(e,{client_secret:n})}(p,c,u);break;case"basic":m.Authorization="Basic "+(0,d.r3)(c+":"+u);break;default:console.warn("Warning: invalid passwordType ".concat(l," was passed, not including client id and secret"))}return n.authorizeRequest({body:(0,d.GZ)(p),url:r.get("tokenUrl"),name:a,headers:m,query:{},auth:e})}};var q=function(e){return function(t){var n=t.authActions,r=e.schema,a=e.scopes,o=e.name,s=e.clientId,l=e.clientSecret,i={Authorization:"Basic "+(0,d.r3)(s+":"+l)},c={grant_type:"client_credentials",scope:a.join(" ")};return n.authorizeRequest({body:(0,d.GZ)(c),name:o,url:r.get("tokenUrl"),auth:e,headers:i})}},R=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,a=t.schema,o=t.name,s=t.clientId,l=t.clientSecret,i=t.codeVerifier,c={grant_type:"authorization_code",code:t.code,client_id:s,client_secret:l,redirect_uri:n,code_verifier:i};return r.authorizeRequest({body:(0,d.GZ)(c),name:o,url:a.get("tokenUrl"),auth:t})}},P=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,a=t.schema,o=t.name,s=t.clientId,l=t.clientSecret,i=t.codeVerifier,c={Authorization:"Basic "+(0,d.r3)(s+":"+l)},u={grant_type:"authorization_code",code:t.code,client_id:s,redirect_uri:n,code_verifier:i};return r.authorizeRequest({body:(0,d.GZ)(u),name:o,url:a.get("tokenUrl"),auth:t,headers:c})}},T=function(e){return function(t){var n,r=t.fn,o=t.getConfigs,l=t.authActions,c=t.errActions,p=t.oas3Selectors,d=t.specSelectors,m=t.authSelectors,h=e.body,f=e.query,g=void 0===f?{}:f,v=e.headers,y=void 0===v?{}:v,E=e.name,S=e.url,b=e.auth,C=(m.getConfigs()||{}).additionalQueryStringParams;if(d.isOAS3()){var x=p.serverEffectiveValue(p.selectedServer());n=u()(S,x,!0)}else n=u()(S,d.url(),!0);"object"===a()(C)&&(n.query=i()({},n.query,C));var w=n.toString(),_=i()({Accept:"application/json, text/plain, */*","Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},y);r.fetch({url:w,method:"post",headers:_,query:g,body:h,requestInterceptor:o().requestInterceptor,responseInterceptor:o().responseInterceptor}).then((function(e){var t=JSON.parse(e.data),n=t&&(t.error||""),r=t&&(t.parseError||"");e.ok?n||r?c.newAuthErr({authId:E,level:"error",source:"auth",message:s()(t)}):l.authorizeOauth2WithPersistOption({auth:b,token:t}):c.newAuthErr({authId:E,level:"error",source:"auth",message:e.statusText})})).catch((function(e){var t=new Error(e).message;if(e.response&&e.response.data){var n=e.response.data;try{var r="string"==typeof n?JSON.parse(n):n;r.error&&(t+=", error: ".concat(r.error)),r.error_description&&(t+=", description: ".concat(r.error_description))}catch(e){}}c.newAuthErr({authId:E,level:"error",source:"auth",message:t})}))}};function O(e){return{type:E,payload:e}}function M(e){return{type:S,payload:e}}var j=function(){return function(e){var t=e.authSelectors;if((0,e.getConfigs)().persistAuthorization){var n=t.authorized();localStorage.setItem("authorized",s()(n.toJS()))}}},V=function(e,t){return function(){p.Z.swaggerUIRedirectOauth2=t,p.Z.open(e)}}},3705:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>m,preauthorizeBasic:()=>h,preauthorizeApiKey:()=>f});var r=n(1093),a=n.n(r),o=n(593),s=n.n(o),l=n(4883),i=n.n(l),c=n(3962),u=n(5812),p=n(35),d=n(8302);function m(){return{afterLoad:function(e){this.rootInjects=this.rootInjects||{},this.rootInjects.initOAuth=e.authActions.configureAuth,this.rootInjects.preauthorizeApiKey=s()(f).call(f,null,e),this.rootInjects.preauthorizeBasic=s()(h).call(h,null,e)},statePlugins:{auth:{reducers:c.default,actions:u,selectors:p},spec:{wrapActions:d}}}}function h(e,t,n,r){var o,s=e.authActions.authorize,l=e.specSelectors,c=l.specJson,u=(0,l.isOAS3)()?["components","securitySchemes"]:["securityDefinitions"],p=c().getIn(i()(o=[]).call(o,u,[t]));return p?s(a()({},t,{value:{username:n,password:r},schema:p.toJS()})):null}function f(e,t,n){var r,o=e.authActions.authorize,s=e.specSelectors,l=s.specJson,c=(0,s.isOAS3)()?["components","securitySchemes"]:["securityDefinitions"],u=l().getIn(i()(r=[]).call(r,c,[t]));return u?o(a()({},t,{value:n,schema:u.toJS()})):null}},3962:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r,a=n(1093),o=n.n(a),s=n(8030),l=n.n(s),i=n(4235),c=n.n(i),u=n(4994),p=n.n(u),d=n(5572),m=n(1890),h=n(5812);const f=(r={},o()(r,h.SHOW_AUTH_POPUP,(function(e,t){var n=t.payload;return e.set("showDefinitions",n)})),o()(r,h.AUTHORIZE,(function(e,t){var n,r=t.payload,a=(0,d.fromJS)(r),o=e.get("authorized")||(0,d.Map)();return c()(n=a.entrySeq()).call(n,(function(t){var n=l()(t,2),r=n[0],a=n[1];if(!(0,m.Wl)(a.getIn))return e.set("authorized",o);var s=a.getIn(["schema","type"]);if("apiKey"===s||"http"===s)o=o.set(r,a);else if("basic"===s){var i=a.getIn(["value","username"]),c=a.getIn(["value","password"]);o=(o=o.setIn([r,"value"],{username:i,header:"Basic "+(0,m.r3)(i+":"+c)})).setIn([r,"schema"],a.get("schema"))}})),e.set("authorized",o)})),o()(r,h.AUTHORIZE_OAUTH2,(function(e,t){var n,r=t.payload,a=r.auth,o=r.token;a.token=p()({},o),n=(0,d.fromJS)(a);var s=e.get("authorized")||(0,d.Map)();return s=s.set(n.get("name"),n),e.set("authorized",s)})),o()(r,h.LOGOUT,(function(e,t){var n=t.payload,r=e.get("authorized").withMutations((function(e){c()(n).call(n,(function(t){e.delete(t)}))}));return e.set("authorized",r)})),o()(r,h.CONFIGURE_AUTH,(function(e,t){var n=t.payload;return e.set("configs",n)})),o()(r,h.RESTORE_AUTHORIZATION,(function(e,t){var n=t.payload;return e.set("authorized",(0,d.fromJS)(n.authorized))})),r)},35:(e,t,n)=>{"use strict";n.r(t),n.d(t,{shownDefinitions:()=>S,definitionsToAuthorize:()=>b,getDefinitionsByNames:()=>C,definitionsForRequirements:()=>x,authorized:()=>w,isAuthorized:()=>_,getConfigs:()=>A});var r=n(8030),a=n.n(r),o=n(4235),s=n.n(o),l=n(9998),i=n.n(l),c=n(5626),u=n.n(c),p=n(8493),d=n.n(p),m=n(3942),h=n.n(m),f=n(7252),g=n.n(f),v=n(6814),y=n(5572),E=function(e){return e},S=(0,v.createSelector)(E,(function(e){return e.get("showDefinitions")})),b=(0,v.createSelector)(E,(function(){return function(e){var t,n=e.specSelectors.securityDefinitions()||(0,y.Map)({}),r=(0,y.List)();return s()(t=n.entrySeq()).call(t,(function(e){var t=a()(e,2),n=t[0],o=t[1],s=(0,y.Map)();s=s.set(n,o),r=r.push(s)})),r}})),C=function(e,t){return function(e){var n,r=e.specSelectors;console.warn("WARNING: getDefinitionsByNames is deprecated and will be removed in the next major version.");var o=r.securityDefinitions(),l=(0,y.List)();return s()(n=t.valueSeq()).call(n,(function(e){var t,n=(0,y.Map)();s()(t=e.entrySeq()).call(t,(function(e){var t,r,l=a()(e,2),i=l[0],c=l[1],u=o.get(i);"oauth2"===u.get("type")&&c.size&&(t=u.get("scopes"),s()(r=t.keySeq()).call(r,(function(e){c.contains(e)||(t=t.delete(e))})),u=u.set("allowedScopes",t));n=n.set(i,u)})),l=l.push(n)})),l}},x=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,y.List)();return function(e){var n=e.authSelectors.definitionsToAuthorize()||(0,y.List)();return i()(n).call(n,(function(e){return u()(t).call(t,(function(t){return t.get(e.keySeq().first())}))}))}},w=(0,v.createSelector)(E,(function(e){return e.get("authorized")||(0,y.Map)()})),_=function(e,t){return function(e){var n,r=e.authSelectors.authorized();return y.List.isList(t)?!!i()(n=t.toJS()).call(n,(function(e){var t,n;return-1===d()(t=h()(n=g()(e)).call(n,(function(e){return!!r.get(e)}))).call(t,!1)})).length:null}},A=(0,v.createSelector)(E,(function(e){return e.get("configs")}))},8302:(e,t,n)=>{"use strict";n.r(t),n.d(t,{execute:()=>o});var r=n(67),a=n.n(r),o=function(e,t){var n=t.authSelectors,r=t.specSelectors;return function(t){var o=t.path,s=t.method,l=t.operation,i=t.extras,c={authorized:n.authorized()&&n.authorized().toJS(),definitions:r.securityDefinitions()&&r.securityDefinitions().toJS(),specSecurity:r.security()&&r.security().toJS()};return e(a()({path:o,method:s,operation:l,securities:c},i))}}},714:(e,t,n)=>{"use strict";n.r(t),n.d(t,{UPDATE_CONFIGS:()=>o,TOGGLE_CONFIGS:()=>s,update:()=>l,toggle:()=>i,loaded:()=>c});var r=n(1093),a=n.n(r),o="configs_update",s="configs_toggle";function l(e,t){return{type:o,payload:a()({},e,t)}}function i(e){return{type:s,payload:e}}var c=function(){return function(e){var t=e.getConfigs,n=e.authActions;if(t().persistAuthorization){var r=localStorage.getItem("authorized");r&&n.restoreAuthorization({authorized:JSON.parse(r)})}}}},2256:(e,t,n)=>{"use strict";n.r(t),n.d(t,{parseYamlConfig:()=>o});var r=n(9793),a=n.n(r),o=function(e,t){try{return a().load(e)}catch(e){return t&&t.errActions.newThrownErr(new Error(e)),{}}}},1661:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(5163),a=n(2256),o=n(714),s=n(2698),l=n(9018),i=n(7743),c={getLocalConfig:function(){return(0,a.parseYamlConfig)(r)}};function u(){return{statePlugins:{spec:{actions:s,selectors:c},configs:{reducers:i.default,actions:o,selectors:l}}}}},7743:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(1093),o=n.n(a),s=n(5572),l=n(714);const i=(r={},o()(r,l.UPDATE_CONFIGS,(function(e,t){return e.merge((0,s.fromJS)(t.payload))})),o()(r,l.TOGGLE_CONFIGS,(function(e,t){var n=t.payload,r=e.get(n);return e.set(n,!r)})),r)},9018:(e,t,n)=>{"use strict";n.r(t),n.d(t,{get:()=>o});var r=n(7104),a=n.n(r),o=function(e,t){return e.getIn(a()(t)?t:[t])}},2698:(e,t,n)=>{"use strict";n.r(t),n.d(t,{downloadConfig:()=>a,getConfigByUrl:()=>o});var r=n(2256),a=function(e){return function(t){return(0,t.fn.fetch)(e)}},o=function(e,t){return function(n){var a=n.specActions;if(e)return a.downloadConfig(e).then(o,o);function o(n){n instanceof Error||n.status>=400?(a.updateLoadingStatus("failedConfig"),a.updateLoadingStatus("failedConfig"),a.updateUrl(""),console.error(n.statusText+" "+e.url),t(null)):t((0,r.parseYamlConfig)(n.text))}}}},1970:(e,t,n)=>{"use strict";n.r(t),n.d(t,{setHash:()=>r});var r=function(e){return e?history.pushState(null,null,"#".concat(e)):window.location.hash=""}},4980:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(2179),a=n(877),o=n(4584);function s(){return[r.default,{statePlugins:{configs:{wrapActions:{loaded:function(e,t){return function(){e.apply(void 0,arguments);var n=decodeURIComponent(window.location.hash);t.layoutActions.parseDeepLinkHash(n)}}}}},wrapComponents:{operation:a.default,OperationTag:o.default}}]}},2179:(e,t,n)=>{"use strict";n.r(t),n.d(t,{clearScrollTo:()=>R,default:()=>P,parseDeepLinkHash:()=>N,readyToScroll:()=>I,scrollTo:()=>k,scrollToElement:()=>q,show:()=>A});var r=n(1093),a=n.n(r),o=n(8030),s=n.n(o),l=n(7104),i=n.n(l),c=n(4883),u=n.n(c),p=n(600),d=n.n(p),m=n(3942),h=n.n(m),f=n(8493),g=n.n(f),v=n(1970);const y=require("zenscroll");var E,S=n.n(y),b=n(1890),C=n(5572),x=n.n(C),w="layout_scroll_to",_="layout_clear_scroll",A=function(e,t){var n=t.getConfigs,r=t.layoutSelectors;return function(){for(var t=arguments.length,a=new Array(t),o=0;o-1&&(console.warn("Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead."),n.show(h()(y).call(y,(function(e){return e.replace(/_/g," ")})),!0)),n.show(y,!0)}(g()(m).call(m,"_")>-1||g()(v).call(v,"_")>-1)&&(console.warn("Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead."),n.show(h()(i).call(i,(function(e){return e.replace(/_/g," ")})),!0)),n.show(i,!0),n.scrollTo(i)}}},I=function(e,t){return function(n){var r=n.layoutSelectors.getScrollToKey();x().is(r,(0,C.fromJS)(e))&&(n.layoutActions.scrollToElement(t),n.layoutActions.clearScrollTo())}},q=function(e,t){return function(n){try{t=t||n.fn.getScrollParent(e),S().createScroller(t).to(e)}catch(e){console.error(e)}}},R=function(){return{type:_}};const P={fn:{getScrollParent:function(e,t){var n=document.documentElement,r=getComputedStyle(e),a="absolute"===r.position,o=t?/(auto|scroll|hidden)/:/(auto|scroll)/;if("fixed"===r.position)return n;for(var s=e;s=s.parentElement;)if(r=getComputedStyle(s),(!a||"static"!==r.position)&&o.test(r.overflow+r.overflowY+r.overflowX))return s;return n}},statePlugins:{layout:{actions:{scrollToElement:q,scrollTo:k,clearScrollTo:R,readyToScroll:I,parseDeepLinkHash:N},selectors:{getScrollToKey:function(e){return e.get("scrollToKey")},isShownKeyFromUrlHashArray:function(e,t){var n=s()(t,2),r=n[0],a=n[1];return a?["operations",r,a]:r?["operations-tag",r]:[]},urlHashArrayFromIsShownKey:function(e,t){var n=s()(t,3),r=n[0],a=n[1],o=n[2];return"operations"==r?[a,o]:"operations-tag"==r?[a]:[]}},reducers:(E={},a()(E,w,(function(e,t){return e.set("scrollToKey",x().fromJS(t.payload))})),a()(E,_,(function(e){return e.delete("scrollToKey")})),E),wrapActions:{show:A}}}}},4584:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>E});var r=n(6349),a=n.n(r),o=n(4606),s=n.n(o),l=n(4555),i=n.n(l),c=n(4291),u=n.n(c),p=n(1885),d=n.n(p),m=n(1093),h=n.n(m),f=n(4883),g=n.n(f),v=n(6689),y=n.n(v);n(580);const E=function(e,t){return function(n){u()(o,n);var r=d()(o);function o(){var e,n;a()(this,o);for(var s=arguments.length,l=new Array(s),c=0;c{"use strict";n.r(t),n.d(t,{default:()=>E});var r=n(6349),a=n.n(r),o=n(4606),s=n.n(o),l=n(4555),i=n.n(l),c=n(4291),u=n.n(c),p=n(1885),d=n.n(p),m=n(1093),h=n.n(m),f=n(4883),g=n.n(f),v=n(6689),y=n.n(v);n(8082);const E=function(e,t){return function(n){u()(o,n);var r=d()(o);function o(){var e,n;a()(this,o);for(var s=arguments.length,l=new Array(s),c=0;c{"use strict";n.r(t),n.d(t,{default:()=>g});var r=n(4994),a=n.n(r),o=n(9478),s=n.n(o),l=n(4883),i=n.n(l),c=n(8493),u=n.n(c),p=n(8344),d=n.n(p),m=n(6814),h=n(5572),f=n(7504);function g(e){var t=e.fn;return{statePlugins:{spec:{actions:{download:function(e){return function(n){var r=n.errActions,o=n.specSelectors,l=n.specActions,c=n.getConfigs,u=t.fetch,p=c();function d(t){if(t instanceof Error||t.status>=400)return l.updateLoadingStatus("failed"),r.newThrownErr(a()(new Error((t.message||t.statusText)+" "+e),{source:"fetch"})),void(!t.status&&t instanceof Error&&function(){try{var t;if("URL"in f.Z?t=new(s())(e):(t=document.createElement("a")).href=e,"https:"!==t.protocol&&"https:"===f.Z.location.protocol){var n=a()(new Error("Possible mixed-content issue? The page was loaded over https:// but a ".concat(t.protocol,"// URL was specified. Check that you are not attempting to load mixed content.")),{source:"fetch"});return void r.newThrownErr(n)}if(t.origin!==f.Z.location.origin){var o,l=a()(new Error(i()(o="Possible cross-origin (CORS) issue? The URL origin (".concat(t.origin,") does not match the page (")).call(o,f.Z.location.origin,"). Check the server returns the correct 'Access-Control-Allow-*' headers.")),{source:"fetch"});r.newThrownErr(l)}}catch(e){return}}());l.updateLoadingStatus("success"),l.updateSpec(t.text),o.url()!==e&&l.updateUrl(e)}e=e||o.url(),l.updateLoadingStatus("loading"),r.clear({source:"fetch"}),u({url:e,loadSpec:!0,requestInterceptor:p.requestInterceptor||function(e){return e},responseInterceptor:p.responseInterceptor||function(e){return e},credentials:"same-origin",headers:{Accept:"application/json,*/*"}}).then(d,d)}},updateLoadingStatus:function(e){var t,n=[null,"loading","failed","success","failedConfig"];-1===u()(n).call(n,e)&&console.error(i()(t="Error: ".concat(e," is not one of ")).call(t,d()(n)));return{type:"spec_update_loading_status",payload:e}}},reducers:{spec_update_loading_status:function(e,t){return"string"==typeof t.payload?e.set("loadingStatus",t.payload):e}},selectors:{loadingStatus:(0,m.createSelector)((function(e){return e||(0,h.Map)()}),(function(e){return e.get("loadingStatus")||null}))}}}}}},4966:(e,t,n)=>{"use strict";n.r(t),n.d(t,{NEW_THROWN_ERR:()=>a,NEW_THROWN_ERR_BATCH:()=>o,NEW_SPEC_ERR:()=>s,NEW_SPEC_ERR_BATCH:()=>l,NEW_AUTH_ERR:()=>i,CLEAR:()=>c,CLEAR_BY:()=>u,newThrownErr:()=>p,newThrownErrBatch:()=>d,newSpecErr:()=>m,newSpecErrBatch:()=>h,newAuthErr:()=>f,clear:()=>g,clearBy:()=>v});var r=n(41),a="err_new_thrown_err",o="err_new_thrown_err_batch",s="err_new_spec_err",l="err_new_spec_err_batch",i="err_new_auth_err",c="err_clear",u="err_clear_by";function p(e){return{type:a,payload:(0,r.serializeError)(e)}}function d(e){return{type:o,payload:e}}function m(e){return{type:s,payload:e}}function h(e){return{type:l,payload:e}}function f(e){return{type:i,payload:e}}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:c,payload:e}}function v(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!0};return{type:u,payload:e}}},2860:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(9998),a=n.n(r),o=n(3942),s=n.n(o);const l=require("lodash/reduce");var i=n.n(l),c=[n(2392),n(1835)];function u(e){var t,n={jsSpec:{}},r=i()(c,(function(e,t){try{var r=t.transform(e,n);return a()(r).call(r,(function(e){return!!e}))}catch(t){return console.error("Transformer error:",t),e}}),e);return s()(t=a()(r).call(r,(function(e){return!!e}))).call(t,(function(e){return!e.get("line")&&e.get("path"),e}))}},2392:(e,t,n)=>{"use strict";n.r(t),n.d(t,{transform:()=>p});var r=n(3942),a=n.n(r),o=n(8493),s=n.n(o),l=n(600),i=n.n(l),c=n(66),u=n.n(c);function p(e){return a()(e).call(e,(function(e){var t,n="is not of a type(s)",r=s()(t=e.get("message")).call(t,n);if(r>-1){var a,o,l=i()(a=e.get("message")).call(a,r+n.length).split(",");return e.set("message",i()(o=e.get("message")).call(o,0,r)+function(e){return u()(e).call(e,(function(e,t,n,r){return n===r.length-1&&r.length>1?e+"or "+t:r[n+1]&&r.length>2?e+t+", ":r[n+1]?e+t+" ":e+t}),"should be a")}(l))}return e}))}},1835:(e,t,n)=>{"use strict";n.r(t),n.d(t,{transform:()=>r});n(3942),n(8493),n(1712),n(5572);function r(e,t){t.jsSpec;return e}},7793:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(3527),a=n(4966),o=n(7667);function s(e){return{statePlugins:{err:{reducers:(0,r.default)(e),actions:a,selectors:o}}}}},3527:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>E});var r=n(1093),a=n.n(r),o=n(4994),s=n.n(o),l=n(3942),i=n.n(l),c=n(4883),u=n.n(c),p=n(9998),d=n.n(p),m=n(7834),h=n.n(m),f=n(4966),g=n(5572),v=n(2860),y={line:0,level:"error",message:"Unknown error"};function E(){var e;return e={},a()(e,f.NEW_THROWN_ERR,(function(e,t){var n=t.payload,r=s()(y,n,{type:"thrown"});return e.update("errors",(function(e){return(e||(0,g.List)()).push((0,g.fromJS)(r))})).update("errors",(function(e){return(0,v.default)(e)}))})),a()(e,f.NEW_THROWN_ERR_BATCH,(function(e,t){var n=t.payload;return n=i()(n).call(n,(function(e){return(0,g.fromJS)(s()(y,e,{type:"thrown"}))})),e.update("errors",(function(e){var t;return u()(t=e||(0,g.List)()).call(t,(0,g.fromJS)(n))})).update("errors",(function(e){return(0,v.default)(e)}))})),a()(e,f.NEW_SPEC_ERR,(function(e,t){var n=t.payload,r=(0,g.fromJS)(n);return r=r.set("type","spec"),e.update("errors",(function(e){return(e||(0,g.List)()).push((0,g.fromJS)(r)).sortBy((function(e){return e.get("line")}))})).update("errors",(function(e){return(0,v.default)(e)}))})),a()(e,f.NEW_SPEC_ERR_BATCH,(function(e,t){var n=t.payload;return n=i()(n).call(n,(function(e){return(0,g.fromJS)(s()(y,e,{type:"spec"}))})),e.update("errors",(function(e){var t;return u()(t=e||(0,g.List)()).call(t,(0,g.fromJS)(n))})).update("errors",(function(e){return(0,v.default)(e)}))})),a()(e,f.NEW_AUTH_ERR,(function(e,t){var n=t.payload,r=(0,g.fromJS)(s()({},n));return r=r.set("type","auth"),e.update("errors",(function(e){return(e||(0,g.List)()).push((0,g.fromJS)(r))})).update("errors",(function(e){return(0,v.default)(e)}))})),a()(e,f.CLEAR,(function(e,t){var n,r=t.payload;if(!r||!e.get("errors"))return e;var a=d()(n=e.get("errors")).call(n,(function(e){var t;return h()(t=e.keySeq()).call(t,(function(t){var n=e.get(t),a=r[t];return!a||n!==a}))}));return e.merge({errors:a})})),a()(e,f.CLEAR_BY,(function(e,t){var n,r=t.payload;if(!r||"function"!=typeof r)return e;var a=d()(n=e.get("errors")).call(n,(function(e){return r(e)}));return e.merge({errors:a})})),e}},7667:(e,t,n)=>{"use strict";n.r(t),n.d(t,{allErrors:()=>o,lastError:()=>s});var r=n(5572),a=n(6814),o=(0,a.createSelector)((function(e){return e}),(function(e){return e.get("errors",(0,r.List)())})),s=(0,a.createSelector)(o,(function(e){return e.last()}))},9978:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4309);function a(){return{fn:{opsFilter:r.default}}}},4309:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n(9998),a=n.n(r),o=n(8493),s=n.n(o);function l(e,t){return a()(e).call(e,(function(e,n){return-1!==s()(n).call(n,t)}))}},5474:(e,t,n)=>{"use strict";n.r(t),n.d(t,{UPDATE_LAYOUT:()=>a,UPDATE_FILTER:()=>o,UPDATE_MODE:()=>s,SHOW:()=>l,updateLayout:()=>i,updateFilter:()=>c,show:()=>u,changeMode:()=>p});var r=n(1890),a="layout_update_layout",o="layout_update_filter",s="layout_update_mode",l="layout_show";function i(e){return{type:a,payload:e}}function c(e){return{type:o,payload:e}}function u(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=(0,r.AF)(e),{type:l,payload:{thing:e,shown:t}}}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e=(0,r.AF)(e),{type:s,payload:{thing:e,mode:t}}}},6821:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n(5672),a=n(5474),o=n(4400),s=n(8989);function l(){return{statePlugins:{layout:{reducers:r.default,actions:a,selectors:o},spec:{wrapSelectors:s}}}}},5672:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r,a=n(1093),o=n.n(a),s=n(4883),l=n.n(s),i=n(5572),c=n(5474);const u=(r={},o()(r,c.UPDATE_LAYOUT,(function(e,t){return e.set("layout",t.payload)})),o()(r,c.UPDATE_FILTER,(function(e,t){return e.set("filter",t.payload)})),o()(r,c.SHOW,(function(e,t){var n=t.payload.shown,r=(0,i.fromJS)(t.payload.thing);return e.update("shown",(0,i.fromJS)({}),(function(e){return e.set(r,n)}))})),o()(r,c.UPDATE_MODE,(function(e,t){var n,r=t.payload.thing,a=t.payload.mode;return e.setIn(l()(n=["modes"]).call(n,r),(a||"")+"")})),r)},4400:(e,t,n)=>{"use strict";n.r(t),n.d(t,{current:()=>u,currentFilter:()=>p,isShown:()=>d,whatMode:()=>m,showSummary:()=>h});var r=n(6731),a=n.n(r),o=n(4883),s=n.n(o),l=n(6814),i=n(1890),c=n(5572),u=function(e){return e.get("layout")},p=function(e){return e.get("filter")},d=function(e,t,n){return t=(0,i.AF)(t),e.get("shown",(0,c.fromJS)({})).get((0,c.fromJS)(t),n)},m=function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return t=(0,i.AF)(t),e.getIn(s()(n=["modes"]).call(n,a()(t)),r)},h=(0,l.createSelector)((function(e){return e}),(function(e){return!d(e,"editor")}))},8989:(e,t,n)=>{"use strict";n.r(t),n.d(t,{taggedOperations:()=>l});var r=n(4883),a=n.n(r),o=n(600),s=n.n(o),l=function(e,t){return function(n){for(var r,o=arguments.length,l=new Array(o>1?o-1:0),i=1;i=0&&(c=s()(c).call(c,0,f)),c}}},9150:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(593),a=n.n(r);function o(e){var t=e.configs,n={debug:0,info:1,log:2,warn:3,error:4},r=function(e){return n[e]||-1},o=t.logLevel,s=r(o);function l(e){for(var t,n=arguments.length,a=new Array(n>1?n-1:0),o=1;o=s&&(t=console)[e].apply(t,a)}return l.warn=a()(l).call(l,null,"warn"),l.error=a()(l).call(l,null,"error"),l.info=a()(l).call(l,null,"info"),l.debug=a()(l).call(l,null,"debug"),{rootInjects:{log:l}}}},7002:(e,t,n)=>{"use strict";n.r(t),n.d(t,{UPDATE_SELECTED_SERVER:()=>r,UPDATE_REQUEST_BODY_VALUE:()=>a,UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG:()=>o,UPDATE_REQUEST_BODY_INCLUSION:()=>s,UPDATE_ACTIVE_EXAMPLES_MEMBER:()=>l,UPDATE_REQUEST_CONTENT_TYPE:()=>i,UPDATE_RESPONSE_CONTENT_TYPE:()=>c,UPDATE_SERVER_VARIABLE_VALUE:()=>u,SET_REQUEST_BODY_VALIDATE_ERROR:()=>p,CLEAR_REQUEST_BODY_VALIDATE_ERROR:()=>d,CLEAR_REQUEST_BODY_VALUE:()=>m,setSelectedServer:()=>h,setRequestBodyValue:()=>f,setRetainRequestBodyValueFlag:()=>g,setRequestBodyInclusion:()=>v,setActiveExamplesMember:()=>y,setRequestContentType:()=>E,setResponseContentType:()=>S,setServerVariableValue:()=>b,setRequestBodyValidateError:()=>C,clearRequestBodyValidateError:()=>x,initRequestBodyValidateError:()=>w,clearRequestBodyValue:()=>_});var r="oas3_set_servers",a="oas3_set_request_body_value",o="oas3_set_request_body_retain_flag",s="oas3_set_request_body_inclusion",l="oas3_set_active_examples_member",i="oas3_set_request_content_type",c="oas3_set_response_content_type",u="oas3_set_server_variable_value",p="oas3_set_request_body_validate_error",d="oas3_clear_request_body_validate_error",m="oas3_clear_request_body_value";function h(e,t){return{type:r,payload:{selectedServerUrl:e,namespace:t}}}function f(e){var t=e.value,n=e.pathMethod;return{type:a,payload:{value:t,pathMethod:n}}}var g=function(e){var t=e.value,n=e.pathMethod;return{type:o,payload:{value:t,pathMethod:n}}};function v(e){var t=e.value,n=e.pathMethod,r=e.name;return{type:s,payload:{value:t,pathMethod:n,name:r}}}function y(e){var t=e.name,n=e.pathMethod,r=e.contextType,a=e.contextName;return{type:l,payload:{name:t,pathMethod:n,contextType:r,contextName:a}}}function E(e){var t=e.value,n=e.pathMethod;return{type:i,payload:{value:t,pathMethod:n}}}function S(e){var t=e.value,n=e.path,r=e.method;return{type:c,payload:{value:t,path:n,method:r}}}function b(e){var t=e.server,n=e.namespace,r=e.key,a=e.val;return{type:u,payload:{server:t,namespace:n,key:r,val:a}}}var C=function(e){var t=e.path,n=e.method,r=e.validationErrors;return{type:p,payload:{path:t,method:n,validationErrors:r}}},x=function(e){var t=e.path,n=e.method;return{type:d,payload:{path:t,method:n}}},w=function(e){var t=e.pathMethod;return{type:d,payload:{path:t[0],method:t[1]}}},_=function(e){var t=e.pathMethod;return{type:m,payload:{pathMethod:t}}}},3723:(e,t,n)=>{"use strict";n.r(t),n.d(t,{definitionsToAuthorize:()=>E});var r=n(1093),a=n.n(r),o=n(8030),s=n.n(o),l=n(4883),i=n.n(l),c=n(4235),u=n.n(c),p=n(9998),d=n.n(p),m=n(66),h=n.n(m),f=n(6814),g=n(5572),v=n(7779);var y,E=(y=(0,f.createSelector)((function(e){return e}),(function(e){return e.specSelectors.securityDefinitions()}),(function(e,t){var n,r=(0,g.List)();return t?(u()(n=t.entrySeq()).call(n,(function(e){var t,n=s()(e,2),o=n[0],l=n[1],i=l.get("type");if("oauth2"===i&&u()(t=l.get("flows").entrySeq()).call(t,(function(e){var t=s()(e,2),n=t[0],i=t[1],c=(0,g.fromJS)({flow:n,authorizationUrl:i.get("authorizationUrl"),tokenUrl:i.get("tokenUrl"),scopes:i.get("scopes"),type:l.get("type"),description:l.get("description")});r=r.push(new g.Map(a()({},o,d()(c).call(c,(function(e){return void 0!==e})))))})),"http"!==i&&"apiKey"!==i||(r=r.push(new g.Map(a()({},o,l)))),"openIdConnect"===i&&l.get("openIdConnectData")){var c=l.get("openIdConnectData"),p=c.get("grant_types_supported")||["authorization_code","implicit"];u()(p).call(p,(function(e){var t,n=c.get("scopes_supported")&&h()(t=c.get("scopes_supported")).call(t,(function(e,t){return e.set(t,"")}),new g.Map),s=(0,g.fromJS)({flow:e,authorizationUrl:c.get("authorization_endpoint"),tokenUrl:c.get("token_endpoint"),scopes:n,type:"oauth2",openIdConnectUrl:l.get("openIdConnectUrl")});r=r.push(new g.Map(a()({},o,d()(s).call(s,(function(e){return void 0!==e})))))}))}})),r):r})),function(e,t){return function(){for(var n=t.getSystem().specSelectors.specJson(),r=arguments.length,a=new Array(r),o=0;o{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n(4250),a=n.n(r),o=n(8030),s=n.n(o),l=n(3942),i=n.n(l),c=n(6689),u=n.n(c),p=(n(580),n(8082),n(5572));const d=function(e){var t,n=e.callbacks,r=e.getComponent,o=e.specPath,l=r("OperationContainer",!0);if(!n)return u().createElement("span",null,"No callbacks");var c=i()(t=n.entrySeq()).call(t,(function(t){var n,r=s()(t,2),c=r[0],d=r[1];return u().createElement("div",{key:c},u().createElement("h2",null,c),i()(n=d.entrySeq()).call(n,(function(t){var n,r=s()(t,2),d=r[0],m=r[1];return"$$ref"===d?null:u().createElement("div",{key:d},i()(n=m.entrySeq()).call(n,(function(t){var n=s()(t,2),r=n[0],i=n[1];if("$$ref"===r)return null;var m=(0,p.fromJS)({operation:i});return u().createElement(l,a()({},e,{op:m,key:r,tag:"",method:r,path:d,specPath:o.push(c,d,r),allowTryItOut:!1}))})))})))}));return u().createElement("div",null,c)}},6775:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>x});var r=n(6349),a=n.n(r),o=n(4606),s=n.n(o),l=n(4555),i=n.n(l),c=n(4291),u=n.n(c),p=n(1885),d=n.n(p),m=n(1093),h=n.n(m),f=n(4994),g=n.n(f),v=n(9998),y=n.n(v),E=n(3942),S=n.n(E),b=n(6689),C=n.n(b),x=(n(580),function(e){u()(n,e);var t=d()(n);function n(e,r){var o;a()(this,n),o=t.call(this,e,r),h()(i()(o),"onChange",(function(e){var t=o.props.onChange,n=e.target,r=n.value,a=n.name,s=g()({},o.state.value);a?s[a]=r:s=r,o.setState({value:s},(function(){return t(o.state)}))}));var s=o.props,l=s.name,c=s.schema,u=o.getValue();return o.state={name:l,schema:c,value:u},o}return s()(n,[{key:"getValue",value:function(){var e=this.props,t=e.name,n=e.authorized;return n&&n.getIn([t,"value"])}},{key:"render",value:function(){var e,t,n=this.props,r=n.schema,a=n.getComponent,o=n.errSelectors,s=n.name,l=a("Input"),i=a("Row"),c=a("Col"),u=a("authError"),p=a("Markdown",!0),d=a("JumpToPath",!0),m=(r.get("scheme")||"").toLowerCase(),h=this.getValue(),f=y()(e=o.allErrors()).call(e,(function(e){return e.get("authId")===s}));if("basic"===m){var g,v=h?h.get("username"):null;return C().createElement("div",null,C().createElement("h4",null,C().createElement("code",null,s||r.get("name")),"  (http, Basic)",C().createElement(d,{path:["securityDefinitions",s]})),v&&C().createElement("h6",null,"Authorized"),C().createElement(i,null,C().createElement(p,{source:r.get("description")})),C().createElement(i,null,C().createElement("label",null,"Username:"),v?C().createElement("code",null," ",v," "):C().createElement(c,null,C().createElement(l,{type:"text",required:"required",name:"username","aria-label":"auth-basic-username",onChange:this.onChange,autoFocus:!0}))),C().createElement(i,null,C().createElement("label",null,"Password:"),v?C().createElement("code",null," ****** "):C().createElement(c,null,C().createElement(l,{autoComplete:"new-password",name:"password",type:"password","aria-label":"auth-basic-password",onChange:this.onChange}))),S()(g=f.valueSeq()).call(g,(function(e,t){return C().createElement(u,{error:e,key:t})})))}return"bearer"===m?C().createElement("div",null,C().createElement("h4",null,C().createElement("code",null,s||r.get("name")),"  (http, Bearer)",C().createElement(d,{path:["securityDefinitions",s]})),h&&C().createElement("h6",null,"Authorized"),C().createElement(i,null,C().createElement(p,{source:r.get("description")})),C().createElement(i,null,C().createElement("label",null,"Value:"),h?C().createElement("code",null," ****** "):C().createElement(c,null,C().createElement(l,{type:"text","aria-label":"auth-bearer-value",onChange:this.onChange,autoFocus:!0}))),S()(t=f.valueSeq()).call(t,(function(e,t){return C().createElement(u,{error:e,key:t})}))):C().createElement("div",null,C().createElement("em",null,C().createElement("b",null,s)," HTTP authentication: unsupported scheme ","'".concat(m,"'")))}}]),n}(C().Component))},6467:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(3427),a=n(2458),o=n(5757),s=n(6617),l=n(9928),i=n(5327),c=n(6775),u=n(6796);const p={Callbacks:r.default,HttpAuth:c.default,RequestBody:a.default,Servers:s.default,ServersContainer:l.default,RequestBodyEditor:i.default,OperationServers:u.default,operationLink:o.default}},5757:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>y});var r=n(6349),a=n.n(r),o=n(4606),s=n.n(o),l=n(4291),i=n.n(l),c=n(1885),u=n.n(c),p=n(8344),d=n.n(p),m=n(3942),h=n.n(m),f=n(6689),g=n.n(f),v=(n(580),n(8082),function(e){i()(n,e);var t=u()(n);function n(){return a()(this,n),t.apply(this,arguments)}return s()(n,[{key:"render",value:function(){var e=this.props,t=e.link,n=e.name,r=(0,e.getComponent)("Markdown",!0),a=t.get("operationId")||t.get("operationRef"),o=t.get("parameters")&&t.get("parameters").toJS(),s=t.get("description");return g().createElement("div",{className:"operation-link"},g().createElement("div",{className:"description"},g().createElement("b",null,g().createElement("code",null,n)),s?g().createElement(r,{source:s}):null),g().createElement("pre",null,"Operation `",a,"`",g().createElement("br",null),g().createElement("br",null),"Parameters ",function(e,t){var n;if("string"!=typeof t)return"";return h()(n=t.split("\n")).call(n,(function(t,n){return n>0?Array(e+1).join(" ")+t:t})).join("\n")}(0,d()(o,null,2))||"{}",g().createElement("br",null)))}}]),n}(f.Component));const y=v},6796:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>b});var r=n(67),a=n.n(r),o=n(6349),s=n.n(o),l=n(4606),i=n.n(l),c=n(4555),u=n.n(c),p=n(4291),d=n.n(p),m=n(1885),h=n.n(m),f=n(1093),g=n.n(f),v=n(4883),y=n.n(v),E=n(6689),S=n.n(E),b=(n(580),n(8082),function(e){d()(n,e);var t=h()(n);function n(){var e,r;s()(this,n);for(var o=arguments.length,l=new Array(o),i=0;i{"use strict";n.r(t),n.d(t,{default:()=>b});var r=n(6349),a=n.n(r),o=n(4606),s=n.n(o),l=n(4555),i=n.n(l),c=n(4291),u=n.n(c),p=n(1885),d=n.n(p),m=n(1093),h=n.n(m),f=n(6689),g=n.n(f),v=(n(580),n(9003)),y=n.n(v),E=n(1890),S=Function.prototype,b=function(e){u()(n,e);var t=d()(n);function n(e,r){var o;return a()(this,n),o=t.call(this,e,r),h()(i()(o),"applyDefaultValue",(function(e){var t=e||o.props,n=t.onChange,r=t.defaultValue;return o.setState({value:r}),n(r)})),h()(i()(o),"onChange",(function(e){o.props.onChange((0,E.Pz)(e))})),h()(i()(o),"onDomChange",(function(e){var t=e.target.value;o.setState({value:t},(function(){return o.onChange(t)}))})),o.state={value:(0,E.Pz)(e.value)||e.defaultValue},e.onChange(e.value),o}return s()(n,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){this.props.value!==e.value&&e.value!==this.state.value&&this.setState({value:(0,E.Pz)(e.value)}),!e.value&&e.defaultValue&&this.state.value&&this.applyDefaultValue(e)}},{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.errors,r=this.state.value,a=n.size>0,o=t("TextArea");return g().createElement("div",{className:"body-param"},g().createElement(o,{className:y()("body-param__text",{invalid:a}),title:n.size?n.join(", "):"",value:r,onChange:this.onDomChange}))}}]),n}(f.PureComponent);h()(b,"defaultProps",{onChange:S,userHasEditedBody:!1})},2458:(e,t,n)=>{"use strict";n.r(t),n.d(t,{getDefaultRequestBodyValue:()=>S,default:()=>b});var r=n(8030),a=n.n(r),o=n(3942),s=n.n(o),l=n(8493),i=n.n(l),c=n(2605),u=n.n(c),p=n(4883),d=n.n(p),m=n(7104),h=n.n(m),f=n(6689),g=n.n(f),v=(n(580),n(8082),n(5572)),y=n(1890),E=n(2518),S=function(e,t,n){var r=e.getIn(["content",t]),a=r.get("schema").toJS(),o=void 0!==r.get("examples"),s=r.get("example"),l=o?r.getIn(["examples",n,"value"]):s,i=(0,y.xi)(a,t,{includeWriteOnly:!0},l);return(0,y.Pz)(i)};const b=function(e){var t=e.userHasEditedBody,n=e.requestBody,r=e.requestBodyValue,o=e.requestBodyInclusionSetting,l=e.requestBodyErrors,c=e.getComponent,p=e.getConfigs,m=e.specSelectors,f=e.fn,b=e.contentType,C=e.isExecute,x=e.specPath,w=e.onChange,_=e.onChangeIncludeEmpty,A=e.activeExamplesKey,k=e.updateActiveExamplesKey,N=e.setRetainRequestBodyValueFlag,I=function(e){var t={key:e,shouldDispatchInit:!1,defaultValue:!0};return"no value"===o.get(e,"no value")&&(t.shouldDispatchInit=!0),t},q=c("Markdown",!0),R=c("modelExample"),P=c("RequestBodyEditor"),T=c("highlightCode"),O=c("ExamplesSelectValueRetainer"),M=c("Example"),j=c("ParameterIncludeEmpty"),V=p().showCommonExtensions,D=n&&n.get("description")||null,L=n&&n.get("content")||new v.OrderedMap;b=b||L.keySeq().first()||"";var U=L.get(b,(0,v.OrderedMap)()),z=U.get("schema",(0,v.OrderedMap)()),B=U.get("examples",null),J=null==B?void 0:s()(B).call(B,(function(e,t){var r,a=null===(r=e)||void 0===r?void 0:r.get("value",null);return a&&(e=e.set("value",S(n,b,t),a)),e}));if(l=v.List.isList(l)?l:(0,v.List)(),!U.size)return null;var F="object"===U.getIn(["schema","type"]),W="binary"===U.getIn(["schema","format"]),H="base64"===U.getIn(["schema","format"]);if("application/octet-stream"===b||0===i()(b).call(b,"image/")||0===i()(b).call(b,"audio/")||0===i()(b).call(b,"video/")||W||H){var K=c("Input");return C?g().createElement(K,{type:"file",onChange:function(e){w(e.target.files[0])}}):g().createElement("i",null,"Example values are not available for ",g().createElement("code",null,b)," media types.")}if(F&&("application/x-www-form-urlencoded"===b||0===i()(b).call(b,"multipart/"))&&z.get("properties",(0,v.OrderedMap)()).size>0){var Z,G=c("JsonSchemaForm"),Y=c("ParameterExt"),X=z.get("properties",(0,v.OrderedMap)());return r=v.Map.isMap(r)?r:(0,v.OrderedMap)(),g().createElement("div",{className:"table-container"},D&&g().createElement(q,{source:D}),g().createElement("table",null,g().createElement("tbody",null,v.Map.isMap(X)&&s()(Z=X.entrySeq()).call(Z,(function(e){var t,n,i=a()(e,2),p=i[0],m=i[1];if(!m.get("readOnly")){var E=V?(0,y.po)(m):null,S=u()(t=z.get("required",(0,v.List)())).call(t,p),b=m.get("type"),x=m.get("format"),A=m.get("description"),k=r.getIn([p,"value"]),N=r.getIn([p,"errors"])||l,R=o.get(p)||!1,P=m.has("default")||m.has("example")||m.hasIn(["items","example"])||m.hasIn(["items","default"]),T=m.has("enum")&&(1===m.get("enum").size||S),O=P||T,M="";"array"!==b||O||(M=[]),("object"===b||O)&&(M=(0,y.xi)(m,!1,{includeWriteOnly:!0})),"string"!=typeof M&&"object"===b&&(M=(0,y.Pz)(M)),"string"==typeof M&&"array"===b&&(M=JSON.parse(M));var D="string"===b&&("binary"===x||"base64"===x);return g().createElement("tr",{key:p,className:"parameters","data-property-name":p},g().createElement("td",{className:"parameters-col_name"},g().createElement("div",{className:S?"parameter__name required":"parameter__name"},p,S?g().createElement("span",null," *"):null),g().createElement("div",{className:"parameter__type"},b,x&&g().createElement("span",{className:"prop-format"},"($",x,")"),V&&E.size?s()(n=E.entrySeq()).call(n,(function(e){var t,n=a()(e,2),r=n[0],o=n[1];return g().createElement(Y,{key:d()(t="".concat(r,"-")).call(t,o),xKey:r,xVal:o})})):null),g().createElement("div",{className:"parameter__deprecated"},m.get("deprecated")?"deprecated":null)),g().createElement("td",{className:"parameters-col_description"},g().createElement(q,{source:A}),C?g().createElement("div",null,g().createElement(G,{fn:f,dispatchInitialValue:!D,schema:m,description:p,getComponent:c,value:void 0===k?M:k,required:S,errors:N,onChange:function(e){w(e,[p])}}),S?null:g().createElement(j,{onChange:function(e){return _(p,e)},isIncluded:R,isIncludedOptions:I(p),isDisabled:h()(k)?0!==k.length:!(0,y.O2)(k)})):null))}})))))}var Q=S(n,b,A),$=null;return(0,E.O)(Q)&&($="json"),g().createElement("div",null,D&&g().createElement(q,{source:D}),J?g().createElement(O,{userHasEditedBody:t,examples:J,currentKey:A,currentUserInputValue:r,onSelect:function(e){k(e)},updateValue:w,defaultToFirstExample:!0,getComponent:c,setRetainRequestBodyValueFlag:N}):null,C?g().createElement("div",null,g().createElement(P,{value:r,errors:l,defaultValue:Q,onChange:w,getComponent:c})):g().createElement(R,{getComponent:c,getConfigs:p,specSelectors:m,expandDepth:1,isExecute:C,schema:U.get("schema"),specPath:x.push("content",b),example:g().createElement(T,{className:"body-param__example",getConfigs:p,language:$,value:(0,y.Pz)(r)||Q}),includeWriteOnly:!0}),J?g().createElement(M,{example:J.get(A),getComponent:c,getConfigs:p}):null)}},9928:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>m});var r=n(6349),a=n.n(r),o=n(4606),s=n.n(o),l=n(4291),i=n.n(l),c=n(1885),u=n.n(c),p=n(6689),d=n.n(p),m=(n(580),function(e){i()(n,e);var t=u()(n);function n(){return a()(this,n),t.apply(this,arguments)}return s()(n,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.oas3Selectors,r=e.oas3Actions,a=e.getComponent,o=t.servers(),s=a("Servers");return o&&o.size?d().createElement("div",null,d().createElement("span",{className:"servers-title"},"Servers"),d().createElement(s,{servers:o,currentServer:n.selectedServer(),setSelectedServer:r.setSelectedServer,setServerVariableValue:r.setServerVariableValue,getServerVariable:n.serverVariableValue,getEffectiveServerValue:n.serverEffectiveValue})):null}}]),n}(d().Component))},6617:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>A});var r=n(8030),a=n.n(r),o=n(6349),s=n.n(o),l=n(4606),i=n.n(l),c=n(4555),u=n.n(c),p=n(4291),d=n.n(p),m=n(1885),h=n.n(m),f=n(1093),g=n.n(f),v=n(4883),y=n.n(v),E=n(3580),S=n.n(E),b=n(3942),C=n.n(b),x=n(6689),w=n.n(x),_=n(5572),A=(n(580),n(8082),function(e){d()(n,e);var t=h()(n);function n(){var e,r;s()(this,n);for(var a=arguments.length,o=new Array(a),l=0;l{"use strict";n.r(t),n.d(t,{isOAS3:()=>c,isSwagger2:()=>u,OAS3ComponentWrapFactory:()=>p});var r=n(4250),a=n.n(r),o=n(3262),s=n.n(o),l=n(6689),i=n.n(l);function c(e){var t=e.get("openapi");return"string"==typeof t&&(s()(t).call(t,"3.0.")&&t.length>4)}function u(e){var t=e.get("swagger");return"string"==typeof t&&s()(t).call(t,"2.0")}function p(e){return function(t,n){return function(r){return n&&n.specSelectors&&n.specSelectors.specJson?c(n.specSelectors.specJson())?i().createElement(e,a()({},r,n,{Ori:t})):i().createElement(t,r):(console.warn("OAS3 wrapper: couldn't get spec"),null)}}}},7451:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(2044),a=n(3723),o=n(1741),s=n(6467),l=n(7761),i=n(7002),c=n(5065),u=n(5013);function p(){return{components:s.default,wrapComponents:l.default,statePlugins:{spec:{wrapSelectors:r,selectors:o},auth:{wrapSelectors:a},oas3:{actions:i,reducers:u.default,selectors:c}}}}},5013:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>S});var r=n(1093),a=n.n(r);const o=require("@babel/runtime-corejs3/helpers/toArray");var s,l=n.n(o),i=n(8030),c=n.n(i),u=n(874),p=n.n(u),d=n(600),m=n.n(d),h=n(4235),f=n.n(h),g=n(66),v=n.n(g),y=n(5572),E=n(7002);const S=(s={},a()(s,E.UPDATE_SELECTED_SERVER,(function(e,t){var n=t.payload,r=n.selectedServerUrl,a=n.namespace,o=a?[a,"selectedServer"]:["selectedServer"];return e.setIn(o,r)})),a()(s,E.UPDATE_REQUEST_BODY_VALUE,(function(e,t){var n=t.payload,r=n.value,a=n.pathMethod,o=c()(a,2),s=o[0],i=o[1];if(!y.Map.isMap(r))return e.setIn(["requestData",s,i,"bodyValue"],r);var u,d=e.getIn(["requestData",s,i,"bodyValue"])||(0,y.Map)();y.Map.isMap(d)||(d=(0,y.Map)());var h=p()(r).call(r),g=l()(h),v=m()(g).call(g,0);return f()(v).call(v,(function(e){var t=r.getIn([e]);d.has(e)&&y.Map.isMap(t)||(u=d.setIn([e,"value"],t))})),e.setIn(["requestData",s,i,"bodyValue"],u)})),a()(s,E.UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG,(function(e,t){var n=t.payload,r=n.value,a=n.pathMethod,o=c()(a,2),s=o[0],l=o[1];return e.setIn(["requestData",s,l,"retainBodyValue"],r)})),a()(s,E.UPDATE_REQUEST_BODY_INCLUSION,(function(e,t){var n=t.payload,r=n.value,a=n.pathMethod,o=n.name,s=c()(a,2),l=s[0],i=s[1];return e.setIn(["requestData",l,i,"bodyInclusion",o],r)})),a()(s,E.UPDATE_ACTIVE_EXAMPLES_MEMBER,(function(e,t){var n=t.payload,r=n.name,a=n.pathMethod,o=n.contextType,s=n.contextName,l=c()(a,2),i=l[0],u=l[1];return e.setIn(["examples",i,u,o,s,"activeExample"],r)})),a()(s,E.UPDATE_REQUEST_CONTENT_TYPE,(function(e,t){var n=t.payload,r=n.value,a=n.pathMethod,o=c()(a,2),s=o[0],l=o[1];return e.setIn(["requestData",s,l,"requestContentType"],r)})),a()(s,E.UPDATE_RESPONSE_CONTENT_TYPE,(function(e,t){var n=t.payload,r=n.value,a=n.path,o=n.method;return e.setIn(["requestData",a,o,"responseContentType"],r)})),a()(s,E.UPDATE_SERVER_VARIABLE_VALUE,(function(e,t){var n=t.payload,r=n.server,a=n.namespace,o=n.key,s=n.val,l=a?[a,"serverVariableValues",r,o]:["serverVariableValues",r,o];return e.setIn(l,s)})),a()(s,E.SET_REQUEST_BODY_VALIDATE_ERROR,(function(e,t){var n=t.payload,r=n.path,a=n.method,o=n.validationErrors,s=[];if(s.push("Required field is not provided"),o.missingBodyValue)return e.setIn(["requestData",r,a,"errors"],(0,y.fromJS)(s));if(o.missingRequiredKeys&&o.missingRequiredKeys.length>0){var l=o.missingRequiredKeys;return e.updateIn(["requestData",r,a,"bodyValue"],(0,y.fromJS)({}),(function(e){return v()(l).call(l,(function(e,t){return e.setIn([t,"errors"],(0,y.fromJS)(s))}),e)}))}return console.warn("unexpected result: SET_REQUEST_BODY_VALIDATE_ERROR"),e})),a()(s,E.CLEAR_REQUEST_BODY_VALIDATE_ERROR,(function(e,t){var n=t.payload,r=n.path,a=n.method,o=e.getIn(["requestData",r,a,"bodyValue"]);if(!y.Map.isMap(o))return e.setIn(["requestData",r,a,"errors"],(0,y.fromJS)([]));var s=p()(o).call(o),i=l()(s),c=m()(i).call(i,0);return c?e.updateIn(["requestData",r,a,"bodyValue"],(0,y.fromJS)({}),(function(e){return v()(c).call(c,(function(e,t){return e.setIn([t,"errors"],(0,y.fromJS)([]))}),e)})):e})),a()(s,E.CLEAR_REQUEST_BODY_VALUE,(function(e,t){var n=t.payload.pathMethod,r=c()(n,2),a=r[0],o=r[1],s=e.getIn(["requestData",a,o,"bodyValue"]);return s?y.Map.isMap(s)?e.setIn(["requestData",a,o,"bodyValue"],(0,y.Map)()):e.setIn(["requestData",a,o,"bodyValue"],""):e})),s)},5065:(e,t,n)=>{"use strict";n.r(t),n.d(t,{selectedServer:()=>b,requestBodyValue:()=>C,shouldRetainRequestBodyValue:()=>x,hasUserEditedBody:()=>w,requestBodyInclusionSetting:()=>_,requestBodyErrors:()=>A,activeExamplesMember:()=>k,requestContentType:()=>N,responseContentType:()=>I,serverVariableValue:()=>q,serverVariables:()=>R,serverEffectiveValue:()=>P,validateBeforeExecute:()=>T,validateShallowRequired:()=>O});var r=n(6731),a=n.n(r),o=n(4883),s=n.n(o),l=n(3942),i=n.n(l),c=n(4235),u=n.n(c),p=n(7252),d=n.n(p),m=n(8493),h=n.n(m),f=n(5572),g=n(7779),v=n(2458),y=n(1890);function E(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r{"use strict";n.r(t),n.d(t,{servers:()=>u,isSwagger2:()=>p});var r=n(6814),a=n(5572),o=n(7779);var s,l=function(e){return e||(0,a.Map)()},i=(0,r.createSelector)(l,(function(e){return e.get("json",(0,a.Map)())})),c=(0,r.createSelector)(l,(function(e){return e.get("resolved",(0,a.Map)())})),u=(s=(0,r.createSelector)((function(e){var t=c(e);return t.count()<1&&(t=i(e)),t}),(function(e){return e.getIn(["servers"])||(0,a.Map)()})),function(){return function(e){var t=e.getSystem().specSelectors.specJson();if((0,o.isOAS3)(t)){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a{"use strict";n.r(t),n.d(t,{definitions:()=>m,hasHost:()=>h,securityDefinitions:()=>f,host:()=>g,basePath:()=>v,consumes:()=>y,produces:()=>E,schemes:()=>S,servers:()=>b,isOAS3:()=>C,isSwagger2:()=>x});var r=n(6814),a=n(3881),o=n(5572),s=n(7779);function l(e){return function(t,n){return function(){var r=n.getSystem().specSelectors.specJson();return(0,s.isOAS3)(r)?e.apply(void 0,arguments):t.apply(void 0,arguments)}}}var i=function(e){return e||(0,o.Map)()},c=l((0,r.createSelector)((function(){return null}))),u=(0,r.createSelector)(i,(function(e){return e.get("json",(0,o.Map)())})),p=(0,r.createSelector)(i,(function(e){return e.get("resolved",(0,o.Map)())})),d=function(e){var t=p(e);return t.count()<1&&(t=u(e)),t},m=l((0,r.createSelector)(d,(function(e){var t=e.getIn(["components","schemas"]);return o.Map.isMap(t)?t:(0,o.Map)()}))),h=l((function(e){return d(e).hasIn(["servers",0])})),f=l((0,r.createSelector)(a.specJsonWithResolvedSubtrees,(function(e){return e.getIn(["components","securitySchemes"])||null}))),g=c,v=c,y=c,E=c,S=c,b=l((0,r.createSelector)(d,(function(e){return e.getIn(["servers"])||(0,o.Map)()}))),C=function(e,t){return function(){var e=t.getSystem().specSelectors.specJson();return(0,s.isOAS3)(o.Map.isMap(e)?e:(0,o.Map)())}},x=function(e,t){return function(){var e=t.getSystem().specSelectors.specJson();return(0,s.isSwagger2)(o.Map.isMap(e)?e:(0,o.Map)())}}},356:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n(5579),a=n.n(r),o=n(6689),s=n.n(o),l=n(7779),i=["Ori"];const c=(0,l.OAS3ComponentWrapFactory)((function(e){var t=e.Ori,n=a()(e,i),r=n.schema,o=n.getComponent,l=n.errSelectors,c=n.authorized,u=n.onAuthChange,p=n.name,d=o("HttpAuth");return"http"===r.get("type")?s().createElement(d,{key:p,schema:r,name:p,errSelectors:l,authorized:c,getComponent:o,onChange:u}):s().createElement(t,n)}))},7761:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n(2460),a=n(356),o=n(9487),s=n(58),l=n(3499),i=n(287);const c={Markdown:r.default,AuthItem:a.default,JsonSchema_string:i.default,VersionStamp:o.default,model:l.default,onlineValidatorBadge:s.default}},287:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n(5579),a=n.n(r),o=n(6689),s=n.n(o),l=n(7779),i=["Ori"];const c=(0,l.OAS3ComponentWrapFactory)((function(e){var t=e.Ori,n=a()(e,i),r=n.schema,o=n.getComponent,l=n.errors,c=n.onChange,u=r&&r.get?r.get("format"):null,p=r&&r.get?r.get("type"):null,d=o("Input");return p&&"string"===p&&u&&("binary"===u||"base64"===u)?s().createElement(d,{type:"file",className:l.length?"invalid":"",title:l.length?l:"",onChange:function(e){c(e.target.files[0])},disabled:t.isDisabled}):s().createElement(t,n)}))},2460:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Markdown:()=>m,default:()=>h});var r=n(7390),a=n.n(r),o=n(6689),s=n.n(o),l=(n(580),n(9003)),i=n.n(l),c=n(963),u=n(7779),p=n(2552),d=new c.Remarkable("commonmark");d.block.ruler.enable(["table"]),d.set({linkTarget:"_blank"});var m=function(e){var t=e.source,n=e.className,r=void 0===n?"":n,o=e.getConfigs;if("string"!=typeof t)return null;if(t){var l,c=o().useUnsafeMarkdown,u=d.render(t),m=(0,p.s)(u,{useUnsafeMarkdown:c});return"string"==typeof m&&(l=a()(m).call(m)),s().createElement("div",{dangerouslySetInnerHTML:{__html:l},className:i()(r,"renderedMarkdown")})}return null};m.defaultProps={getConfigs:function(){return{useUnsafeMarkdown:!1}}};const h=(0,u.OAS3ComponentWrapFactory)(m)},3499:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>y});var r=n(4250),a=n.n(r),o=n(6349),s=n.n(o),l=n(4606),i=n.n(l),c=n(4291),u=n.n(c),p=n(1885),d=n.n(p),m=n(6689),h=n.n(m),f=(n(580),n(7779)),g=n(6024),v=function(e){u()(n,e);var t=d()(n);function n(){return s()(this,n),t.apply(this,arguments)}return i()(n,[{key:"render",value:function(){var e=this.props,t=e.getConfigs,n=["model-box"],r=null;return!0===e.schema.get("deprecated")&&(n.push("deprecated"),r=h().createElement("span",{className:"model-deprecated-warning"},"Deprecated:")),h().createElement("div",{className:n.join(" ")},r,h().createElement(g.Z,a()({},this.props,{getConfigs:t,depth:1,expandDepth:this.props.expandDepth||0})))}}]),n}(m.Component);const y=(0,f.OAS3ComponentWrapFactory)(v)},58:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(7779),a=n(5623);const o=(0,r.OAS3ComponentWrapFactory)(a.Z)},9487:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(6689),a=n.n(r);const o=(0,n(7779).OAS3ComponentWrapFactory)((function(e){var t=e.Ori;return a().createElement("span",null,a().createElement(t,e),a().createElement("small",{className:"version-stamp"},a().createElement("pre",{className:"version"},"OAS3")))}))},8560:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(9300),a=n.n(r),o=!1;function s(){return{statePlugins:{spec:{wrapActions:{updateSpec:function(e){return function(){return o=!0,e.apply(void 0,arguments)}},updateJsonSpec:function(e,t){return function(){var n=t.getConfigs().onComplete;return o&&"function"==typeof n&&(a()(n,0),o=!1),e.apply(void 0,arguments)}}}}}}}},8223:(e,t,n)=>{"use strict";n.r(t),n.d(t,{requestSnippetGenerator_curl_bash:()=>O,requestSnippetGenerator_curl_cmd:()=>M,requestSnippetGenerator_curl_powershell:()=>T});var r=n(6731),a=n.n(r),o=n(8030),s=n.n(o),l=n(1771),i=n.n(l),c=n(8493),u=n.n(c),p=n(7390),d=n.n(p),m=n(4883),h=n.n(m),f=n(8344),g=n.n(f),v=n(3942),y=n.n(v);const E=require("@babel/runtime-corejs3/core-js-stable/instance/repeat");var S=n.n(E),b=n(7862),C=n.n(b),x=n(2605),w=n.n(x),_=n(7504),A=n(5572),k=function(e){var t,n="_**[]";return u()(e).call(e,n)<0?e:d()(t=e.split(n)[0]).call(t)},N=function(e){return"-d "===e||/^[_\/-]/g.test(e)?e:"'"+e.replace(/'/g,"'\\''")+"'"},I=function(e){return"-d "===(e=e.replace(/\^/g,"^^").replace(/\\"/g,'\\\\"').replace(/"/g,'""').replace(/\n/g,"^\n"))?e.replace(/-d /g,"-d ^\n"):/^[_\/-]/g.test(e)?e:'"'+e+'"'},q=function(e){return"-d "===e?e:/\n/.test(e)?'@"\n'+e.replace(/"/g,'\\"').replace(/`/g,"``").replace(/\$/,"`$")+'\n"@':/^[_\/-]/g.test(e)?e:"'"+e.replace(/"/g,'""').replace(/'/g,"''")+"'"};function R(e){var t,n=[],r=i()(e.get("body").entrySeq());try{for(r.s();!(t=r.n()).done;){var a,o,l,c=s()(t.value,2),u=c[0],p=c[1],d=k(u);if(p instanceof _.Z.File)n.push(h()(a=h()(o=' "'.concat(d,'": {\n "name": "')).call(o,p.name,'"')).call(a,p.type?',\n "type": "'.concat(p.type,'"'):"","\n }"));else n.push(h()(l=' "'.concat(d,'": ')).call(l,g()(p,null,2).replace(/(\r\n|\r|\n)/g,"\n ")))}}catch(e){r.e(e)}finally{r.f()}return"{\n".concat(n.join(",\n"),"\n}")}var P=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=!1,l="",c=function(){for(var e=arguments.length,n=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:1;return l+=S()(e=" ").call(e,t)},m=e.get("headers");if(l+="curl"+r,e.has("curlOptions")&&c.apply(void 0,a()(e.get("curlOptions"))),c("-X",e.get("method")),p(),d(),u("".concat(e.get("url"))),m&&m.size){var f,v,E=i()(C()(f=e.get("headers")).call(f));try{for(E.s();!(v=E.n()).done;){var b,x=v.value;p(),d();var N=s()(x,2),I=N[0],q=N[1];u("-H",h()(b="".concat(I,": ")).call(b,q)),o=o||/^content-type$/i.test(I)&&/^multipart\/form-data$/i.test(q)}}catch(e){E.e(e)}finally{E.f()}}var P,T=e.get("body");if(T)if(o&&w()(P=["POST","PUT","PATCH"]).call(P,e.get("method"))){var O,M=i()(T.entrySeq());try{for(M.s();!(O=M.n()).done;){var j,V,D,L=s()(O.value,2),U=L[0],z=L[1],B=k(U);if(p(),d(),u("-F"),z instanceof _.Z.File)c(h()(j=h()(V="".concat(B,"=@")).call(V,z.name)).call(j,z.type?";type=".concat(z.type):""));else c(h()(D="".concat(B,"=")).call(D,z))}}catch(e){M.e(e)}finally{M.f()}}else if(T instanceof _.Z.File)p(),d(),u("--data-binary '@".concat(T.name,"'"));else{p(),d(),u("-d ");var J=T;A.Map.isMap(J)?u(R(e)):("string"!=typeof J&&(J=g()(J)),u(J))}else T||"POST"!==e.get("method")||(p(),d(),u("-d ''"));return l},T=function(e){return P(e,q,"`\n",".exe")},O=function(e){return P(e,N,"\\\n")},M=function(e){return P(e,I,"^\n")}},6575:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(8223),a=n(4669),o=n(4206);const s=function(){return{components:{RequestSnippets:o.default},fn:r,statePlugins:{requestSnippets:{selectors:a}}}}},4206:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>x});var r=n(8030),a=n.n(r),o=n(9998),s=n.n(o),l=n(1733),i=n.n(l),c=n(4235),u=n.n(c),p=n(3942),d=n.n(p),m=n(6689),h=n.n(m),f=(n(580),n(1712)),g=n.n(f),v=n(5716),y=n.n(v),E=n(2807),S=n(6068),b={cursor:"pointer",lineHeight:1,display:"inline-flex",backgroundColor:"rgb(250, 250, 250)",paddingBottom:"0",paddingTop:"0",border:"1px solid rgb(51, 51, 51)",borderRadius:"4px 4px 0 0",boxShadow:"none",borderBottom:"none"},C={cursor:"pointer",lineHeight:1,display:"inline-flex",backgroundColor:"rgb(51, 51, 51)",boxShadow:"none",border:"1px solid rgb(51, 51, 51)",paddingBottom:"0",paddingTop:"0",borderRadius:"4px 4px 0 0",marginTop:"-5px",marginRight:"-5px",marginLeft:"-5px",zIndex:"9999",borderBottom:"none"};const x=function(e){var t,n,r=e.request,o=e.requestSnippetsSelectors,l=e.getConfigs,c=y()(l)?l():null,p=!1!==g()(c,"syntaxHighlight")&&g()(c,"syntaxHighlight.activated",!0),f=(0,m.useRef)(null),v=(0,m.useState)(null===(t=o.getSnippetGenerators())||void 0===t?void 0:t.keySeq().first()),x=a()(v,2),w=x[0],_=x[1],A=(0,m.useState)(null==o?void 0:o.getDefaultExpanded()),k=a()(A,2),N=k[0],I=k[1];(0,m.useEffect)((function(){}),[]),(0,m.useEffect)((function(){var e,t=s()(e=i()(f.current.childNodes)).call(e,(function(e){var t;return!!e.nodeType&&(null===(t=e.classList)||void 0===t?void 0:t.contains("curl-command"))}));return u()(t).call(t,(function(e){return e.addEventListener("mousewheel",M,{passive:!1})})),function(){u()(t).call(t,(function(e){return e.removeEventListener("mousewheel",M)}))}}),[r]);var q=o.getSnippetGenerators(),R=q.get(w),P=R.get("fn")(r),T=function(){I(!N)},O=function(e){return e===w?C:b},M=function(e){var t=e.target,n=e.deltaY,r=t.scrollHeight,a=t.offsetHeight,o=t.scrollTop;r>a&&(0===o&&n<0||a+o>=r&&n>0)&&e.preventDefault()},j=p?h().createElement(S.d3,{language:R.get("syntax"),className:"curl microlight",style:(0,S.C2)(g()(c,"syntaxHighlight.theme"))},P):h().createElement("textarea",{readOnly:!0,className:"curl",value:P});return h().createElement("div",{className:"request-snippets",ref:f},h().createElement("div",{style:{width:"100%",display:"flex",justifyContent:"flex-start",alignItems:"center",marginBottom:"15px"}},h().createElement("h4",{onClick:function(){return T()},style:{cursor:"pointer"}},"Snippets"),h().createElement("button",{onClick:function(){return T()},style:{border:"none",background:"none"},title:N?"Collapse operation":"Expand operation"},h().createElement("svg",{className:"arrow",width:"10",height:"10"},h().createElement("use",{href:N?"#large-arrow-down":"#large-arrow",xlinkHref:N?"#large-arrow-down":"#large-arrow"})))),N&&h().createElement("div",{className:"curl-command"},h().createElement("div",{style:{paddingLeft:"15px",paddingRight:"10px",width:"100%",display:"flex"}},d()(n=q.entrySeq()).call(n,(function(e){var t=a()(e,2),n=t[0],r=t[1];return h().createElement("div",{style:O(n),className:"btn",key:n,onClick:function(){return function(e){w!==e&&_(e)}(n)}},h().createElement("h4",{style:n===w?{color:"white"}:{}},r.get("title")))}))),h().createElement("div",{className:"copy-to-clipboard"},h().createElement(E.CopyToClipboard,{text:P},h().createElement("button",null))),h().createElement("div",null,j)))}},4669:(e,t,n)=>{"use strict";n.r(t),n.d(t,{getGenerators:()=>d,getSnippetGenerators:()=>m,getActiveLanguage:()=>h,getDefaultExpanded:()=>f});var r=n(9998),a=n.n(r),o=n(2605),s=n.n(o),l=n(3942),i=n.n(l),c=n(6814),u=n(5572),p=function(e){return e||(0,u.Map)()},d=(0,c.createSelector)(p,(function(e){var t=e.get("languages"),n=e.get("generators",(0,u.Map)());return!t||t.isEmpty()?n:a()(n).call(n,(function(e,n){return s()(t).call(t,n)}))})),m=function(e){return function(t){var n,r,o=t.fn;return a()(n=i()(r=d(e)).call(r,(function(e,t){var n=function(e){return o["requestSnippetGenerator_".concat(e)]}(t);return"function"!=typeof n?null:e.set("fn",n)}))).call(n,(function(e){return e}))}},h=(0,c.createSelector)(p,(function(e){return e.get("activeLanguage")})),f=(0,c.createSelector)(p,(function(e){return e.get("defaultExpanded")}))},6195:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ErrorBoundary:()=>v,default:()=>y});var r=n(6349),a=n.n(r),o=n(4606),s=n.n(o),l=n(4291),i=n.n(l),c=n(1885),u=n.n(c),p=n(4883),d=n.n(p),m=(n(580),n(6689)),h=n.n(m),f=n(6189),g=n(9403),v=function(e){i()(n,e);var t=u()(n);function n(){var e,r;a()(this,n);for(var o=arguments.length,s=new Array(o),l=0;l{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(6689),a=n.n(r);n(580);const o=function(e){var t=e.name;return a().createElement("div",{className:"fallback"},"😱 ",a().createElement("i",null,"Could not render ","t"===t?"this component":t,", see the console."))}},6189:(e,t,n)=>{"use strict";n.r(t),n.d(t,{componentDidCatch:()=>f,withErrorBoundary:()=>g});var r=n(4250),a=n.n(r),o=n(6349),s=n.n(o),l=n(4606),i=n.n(l),c=n(4291),u=n.n(c),p=n(1885),d=n.n(p),m=n(6689),h=n.n(m),f=console.error,g=function(e){return function(t){var n,r=e(),o=r.getComponent,l=r.fn,c=o("ErrorBoundary"),p=l.getDisplayName(t),f=function(e){u()(r,e);var n=d()(r);function r(){return s()(this,r),n.apply(this,arguments)}return i()(r,[{key:"render",value:function(){return h().createElement(c,{targetName:p,getComponent:o,fn:l},h().createElement(t,a()({},this.props,this.context)))}}]),r}(m.Component);return f.displayName="WithErrorBoundary(".concat(p,")"),(n=t).prototype&&n.prototype.isReactComponent&&(f.prototype.mapStateToProps=t.prototype.mapStateToProps),f}}},9595:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>h});var r=n(6731),a=n.n(r),o=n(4883),s=n.n(o);const l=require("@babel/runtime-corejs3/core-js-stable/instance/fill");var i=n.n(l);const c=require("lodash/zipObject");var u=n.n(c),p=n(6195),d=n(9403),m=n(6189);const h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.componentList,n=void 0===t?[]:t,r=e.fullOverride,o=void 0!==r&&r;return function(e){var t,r,l=e.getSystem,c=o?n:s()(t=[]).call(t,["App","BaseLayout","VersionPragmaFilter","InfoContainer","ServersContainer","SchemesContainer","AuthorizeBtnContainer","FilterContainer","Operations","OperationContainer","parameters","responses","OperationServers","Models","ModelWrapper"],a()(n)),h=u()(c,i()(r=Array(c.length)).call(r,(function(e,t){return t.fn.withErrorBoundary(e)})));return{fn:{componentDidCatch:m.componentDidCatch,withErrorBoundary:(0,m.withErrorBoundary)(l)},components:{ErrorBoundary:p.default,Fallback:d.default},wrapComponents:h}}}},4128:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createXMLExample:()=>J,inferSchema:()=>B,memoizedCreateXMLExample:()=>H,memoizedSampleFromSchema:()=>K,sampleFromSchema:()=>F,sampleFromSchemaGeneric:()=>z});var r=n(6768),a=n.n(r),o=n(4883),s=n.n(o),l=n(8493),i=n.n(l),c=n(4235),u=n.n(c),p=n(7104),d=n.n(p),m=n(2605),h=n.n(m),f=n(5626),g=n.n(f),v=n(600),y=n.n(v),E=n(3580),S=n.n(E),b=n(3942),C=n.n(b),x=n(8344),w=n.n(x);const _=require("xml");var A=n.n(_);const k=require("randexp");var N=n.n(k);const I=require("lodash/isEmpty");var q=n.n(I),R=n(1890),P=n(7156),T={string:function(e){return e.pattern?function(e){try{return new(N())(e).gen()}catch(e){return"string"}}(e.pattern):"string"},string_email:function(){return"user@example.com"},"string_date-time":function(){return(new Date).toISOString()},string_date:function(){return(new Date).toISOString().substring(0,10)},string_uuid:function(){return"3fa85f64-5717-4562-b3fc-2c963f66afa6"},string_hostname:function(){return"example.com"},string_ipv4:function(){return"198.51.100.42"},string_ipv6:function(){return"2001:0db8:5b96:0000:0000:426f:8e17:642a"},number:function(){return 0},number_float:function(){return 0},integer:function(){return 0},boolean:function(e){return"boolean"!=typeof e.default||e.default}},O=function(e){var t,n=e=(0,R.mz)(e),r=n.type,a=n.format,o=T[s()(t="".concat(r,"_")).call(t,a)]||T[r];return(0,R.Wl)(o)?o(e):"Unknown Type: "+e.type},M=function(e){return(0,R.XV)(e,"$$ref",(function(e){return"string"==typeof e&&i()(e).call(e,"#")>-1}))},j=["maxProperties","minProperties"],V=["minItems","maxItems"],D=["minimum","maximum","exclusiveMinimum","exclusiveMaximum"],L=["minLength","maxLength"],U=function e(t,n){var r,a,o,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=function(e){void 0===n[e]&&void 0!==t[e]&&(n[e]=t[e])};(u()(r=s()(a=["example","default","enum","xml","type"]).call(a,j,V,D,L)).call(r,(function(e){return c(e)})),void 0!==t.required&&d()(t.required))&&(void 0!==n.required&&n.required.length||(n.required=[]),u()(o=t.required).call(o,(function(e){var t;h()(t=n.required).call(t,e)||n.required.push(e)})));if(t.properties){n.properties||(n.properties={});var p=(0,R.mz)(t.properties);for(var m in p){var f;if(Object.prototype.hasOwnProperty.call(p,m))if(!p[m]||!p[m].deprecated)if(!p[m]||!p[m].readOnly||l.includeReadOnly)if(!p[m]||!p[m].writeOnly||l.includeWriteOnly)if(!n.properties[m])n.properties[m]=p[m],!t.required&&d()(t.required)&&-1!==i()(f=t.required).call(f,m)&&(n.required?n.required.push(m):n.required=[m])}}return t.items&&(n.items||(n.items={}),n.items=e(t.items,n.items,l)),n},z=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t&&(0,R.Wl)(t.toJS)&&(t=t.toJS());var l=void 0!==r||t&&void 0!==t.example||t&&void 0!==t.default,c=!l&&t&&t.oneOf&&t.oneOf.length>0,p=!l&&t&&t.anyOf&&t.anyOf.length>0;if(!l&&(c||p)){var m=(0,R.mz)(c?t.oneOf[0]:t.anyOf[0]);if(U(m,t,n),!t.xml&&m.xml&&(t.xml=m.xml),void 0!==t.example&&void 0!==m.example)l=!0;else if(m.properties){t.properties||(t.properties={});var f=(0,R.mz)(m.properties);for(var v in f){var E;if(Object.prototype.hasOwnProperty.call(f,v))if(!f[v]||!f[v].deprecated)if(!f[v]||!f[v].readOnly||n.includeReadOnly)if(!f[v]||!f[v].writeOnly||n.includeWriteOnly)if(!t.properties[v])t.properties[v]=f[v],!m.required&&d()(m.required)&&-1!==i()(E=m.required).call(E,v)&&(t.required?t.required.push(v):t.required=[v])}}}var b,x={},w=t||{},_=w.xml,A=w.type,k=w.example,N=w.properties,I=w.additionalProperties,P=w.items,T=n.includeReadOnly,L=n.includeWriteOnly,z=_=_||{},B=z.name,J=z.prefix,F=z.namespace,W={};if(o&&(b=(J?J+":":"")+(B=B||"notagname"),F)){var H=J?"xmlns:"+J:"xmlns";x[H]=F}o&&(W[b]=[]);var K=function(e){return g()(e).call(e,(function(e){return Object.prototype.hasOwnProperty.call(t,e)}))};t&&!A&&(N||I||K(j)?A="object":P||K(V)?A="array":K(D)?(A="number",t.type="number"):l||t.enum||(A="string",t.type="string"));var Z,G,Y=function(e){var n,r,a,o,s;null!==(null===(n=t)||void 0===n?void 0:n.maxItems)&&void 0!==(null===(r=t)||void 0===r?void 0:r.maxItems)&&(e=y()(e).call(e,0,null===(s=t)||void 0===s?void 0:s.maxItems));if(null!==(null===(a=t)||void 0===a?void 0:a.minItems)&&void 0!==(null===(o=t)||void 0===o?void 0:o.minItems))for(var l=0;e.length<(null===(i=t)||void 0===i?void 0:i.minItems);){var i;e.push(e[l++%e.length])}return e},X=(0,R.mz)(N),Q=0,$=function(){return t&&null!==t.maxProperties&&void 0!==t.maxProperties&&Q>=t.maxProperties},ee=function(){if(!t||!t.required)return 0;var e,n,r=0;o?u()(e=t.required).call(e,(function(e){return r+=void 0===W[e]?0:1})):u()(n=t.required).call(n,(function(e){var t;return r+=void 0===(null===(t=W[b])||void 0===t?void 0:S()(t).call(t,(function(t){return void 0!==t[e]})))?0:1}));return t.required.length-r},te=function(e){var n;return!(t&&t.required&&t.required.length)||!h()(n=t.required).call(n,e)},ne=function(e){return!t||null===t.maxProperties||void 0===t.maxProperties||!$()&&(!te(e)||t.maxProperties-Q-ee()>0)};if(Z=o?function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(t&&X[r]){if(X[r].xml=X[r].xml||{},X[r].xml.attribute){var l=d()(X[r].enum)?X[r].enum[0]:void 0,i=X[r].example,c=X[r].default;return void(x[X[r].xml.name||r]=void 0!==i?i:void 0!==c?c:void 0!==l?l:O(X[r]))}X[r].xml.name=X[r].xml.name||r}else X[r]||!1===I||(X[r]={xml:{name:r}});var u,p=e(t&&X[r]||void 0,n,a,o);ne(r)&&(Q++,d()(p)?W[b]=s()(u=W[b]).call(u,p):W[b].push(p))}:function(t,r){ne(t)&&(W[t]=e(X[t],n,r,o),Q++)},l){var re;if(re=M(void 0!==r?r:void 0!==k?k:t.default),!o){if("number"==typeof re&&"string"===A)return"".concat(re);if("string"!=typeof re||"string"===A)return re;try{return JSON.parse(re)}catch(e){return re}}if(t||(A=d()(re)?"array":a()(re)),"array"===A){if(!d()(re)){if("string"==typeof re)return re;re=[re]}var ae=t?t.items:void 0;ae&&(ae.xml=ae.xml||_||{},ae.xml.name=ae.xml.name||_.name);var oe=C()(re).call(re,(function(t){return e(ae,n,t,o)}));return oe=Y(oe),_.wrapped?(W[b]=oe,q()(x)||W[b].push({_attr:x})):W=oe,W}if("object"===A){if("string"==typeof re)return re;for(var se in re)Object.prototype.hasOwnProperty.call(re,se)&&(t&&X[se]&&X[se].readOnly&&!T||t&&X[se]&&X[se].writeOnly&&!L||(t&&X[se]&&X[se].xml&&X[se].xml.attribute?x[X[se].xml.name||se]=re[se]:Z(se,re[se])));return q()(x)||W[b].push({_attr:x}),W}return W[b]=q()(x)?re:[{_attr:x},re],W}if("object"===A){for(var le in X)Object.prototype.hasOwnProperty.call(X,le)&&(X[le]&&X[le].deprecated||X[le]&&X[le].readOnly&&!T||X[le]&&X[le].writeOnly&&!L||Z(le));if(o&&x&&W[b].push({_attr:x}),$())return W;if(!0===I)o?W[b].push({additionalProp:"Anything can be here"}):W.additionalProp1={},Q++;else if(I){var ie=(0,R.mz)(I),ce=e(ie,n,void 0,o);if(o&&ie.xml&&ie.xml.name&&"notagname"!==ie.xml.name)W[b].push(ce);else for(var ue=null!==t.minProperties&&void 0!==t.minProperties&&Q{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4128);function a(){return{fn:r}}},7960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CLEAR_REQUEST:()=>de,CLEAR_RESPONSE:()=>pe,CLEAR_VALIDATE_PARAMS:()=>me,LOG_REQUEST:()=>ue,SET_MUTATED_REQUEST:()=>ce,SET_REQUEST:()=>ie,SET_RESPONSE:()=>le,SET_SCHEME:()=>ve,UPDATE_EMPTY_PARAM_INCLUSION:()=>oe,UPDATE_JSON:()=>re,UPDATE_OPERATION_META_VALUE:()=>he,UPDATE_PARAM:()=>ae,UPDATE_RESOLVED:()=>fe,UPDATE_RESOLVED_SUBTREE:()=>ge,UPDATE_SPEC:()=>te,UPDATE_URL:()=>ne,VALIDATE_PARAMS:()=>se,changeConsumesValue:()=>Me,changeParam:()=>Ne,changeParamByIdentity:()=>Ie,changeProducesValue:()=>je,clearRequest:()=>Fe,clearResponse:()=>Je,clearValidateParams:()=>Oe,execute:()=>Be,executeRequest:()=>ze,invalidateResolvedSubtreeCache:()=>Re,logRequest:()=>Ue,parseToJson:()=>Ce,requestResolvedSubtree:()=>ke,resolveSpec:()=>we,setMutatedRequest:()=>Le,setRequest:()=>De,setResponse:()=>Ve,setScheme:()=>We,updateEmptyParamInclusion:()=>Te,updateJsonSpec:()=>be,updateResolved:()=>Ee,updateResolvedSubtree:()=>qe,updateSpec:()=>ye,updateUrl:()=>Se,validateParams:()=>Pe});var r=n(67),a=n.n(r),o=n(5579),s=n.n(o);const l=require("@babel/runtime-corejs3/helpers/asyncToGenerator");var i=n.n(l),c=n(6768),u=n.n(c);const p=require("@babel/runtime-corejs3/regenerator");var d=n.n(p),m=n(7104),h=n.n(m),f=n(3942),g=n.n(f);const v=require("@babel/runtime-corejs3/core-js-stable/object/define-property");var y=n.n(v),E=n(66),S=n.n(E),b=n(7834),C=n.n(b);const x=require("@babel/runtime-corejs3/core-js-stable/promise");var w=n.n(x),_=n(9998),A=n.n(_),k=n(9968),N=n.n(k),I=n(8493),q=n.n(I),R=n(4235),P=n.n(R),T=n(4883),O=n.n(T),M=n(7252),j=n.n(M),V=n(4994),D=n.n(V);const L=require("@babel/runtime-corejs3/core-js-stable/date/now");var U=n.n(L),z=n(9793),B=n.n(z),J=n(5572),F=n(3883),W=n.n(F),H=n(41);const K=require("lodash/isString");var Z=n.n(K);const G=require("lodash/debounce");var Y=n.n(G);const X=require("lodash/set");var Q=n.n(X),$=n(1890),ee=["path","method"],te="spec_update_spec",ne="spec_update_url",re="spec_update_json",ae="spec_update_param",oe="spec_update_empty_param_inclusion",se="spec_validate_param",le="spec_set_response",ie="spec_set_request",ce="spec_set_mutated_request",ue="spec_log_request",pe="spec_clear_response",de="spec_clear_request",me="spec_clear_validate_param",he="spec_update_operation_meta_value",fe="spec_update_resolved",ge="spec_update_resolved_subtree",ve="set_scheme";function ye(e){var t,n=(t=e,Z()(t)?t:"").replace(/\t/g," ");if("string"==typeof e)return{type:te,payload:n}}function Ee(e){return{type:fe,payload:e}}function Se(e){return{type:ne,payload:e}}function be(e){return{type:re,payload:e}}var Ce=function(e){return function(t){var n=t.specActions,r=t.specSelectors,a=t.errActions,o=r.specStr,s=null;try{e=e||o(),a.clear({source:"parser"}),s=B().load(e,{schema:z.JSON_SCHEMA})}catch(e){return console.error(e),a.newSpecErr({source:"parser",level:"error",message:e.reason,line:e.mark&&e.mark.line?e.mark.line+1:void 0})}return s&&"object"===u()(s)?n.updateJsonSpec(s):{}}},xe=!1,we=function(e,t){return function(n){var r=n.specActions,a=n.specSelectors,o=n.errActions,s=n.fn,l=s.fetch,i=s.resolve,c=s.AST,u=void 0===c?{}:c,p=n.getConfigs;xe||(console.warn("specActions.resolveSpec is deprecated since v3.10.0 and will be removed in v4.0.0; use requestResolvedSubtree instead!"),xe=!0);var d=p(),m=d.modelPropertyMacro,f=d.parameterMacro,v=d.requestInterceptor,E=d.responseInterceptor;void 0===e&&(e=a.specJson()),void 0===t&&(t=a.url());var S=u.getLineNumberForPath?u.getLineNumberForPath:function(){},b=a.specStr();return i({fetch:l,spec:e,baseDoc:t,modelPropertyMacro:m,parameterMacro:f,requestInterceptor:v,responseInterceptor:E}).then((function(e){var t=e.spec,n=e.errors;if(o.clear({type:"thrown"}),h()(n)&&n.length>0){var a=g()(n).call(n,(function(e){return console.error(e),e.line=e.fullPath?S(b,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",y()(e,"message",{enumerable:!0,value:e.message}),e}));o.newThrownErrBatch(a)}return r.updateResolved(t)}))}},_e=[],Ae=Y()(i()(d().mark((function e(){var t,n,r,a,o,s,l,c,u,p,m,f,v,E,b,x,_,k;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=_e.system){e.next=4;break}return console.error("debResolveSubtrees: don't have a system to operate on, aborting."),e.abrupt("return");case 4:if(n=t.errActions,r=t.errSelectors,a=t.fn,o=a.resolveSubtree,s=a.fetch,l=a.AST,c=void 0===l?{}:l,u=t.specSelectors,p=t.specActions,o){e.next=8;break}return console.error("Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing."),e.abrupt("return");case 8:return m=c.getLineNumberForPath?c.getLineNumberForPath:function(){},f=u.specStr(),v=t.getConfigs(),E=v.modelPropertyMacro,b=v.parameterMacro,x=v.requestInterceptor,_=v.responseInterceptor,e.prev=11,e.next=14,S()(_e).call(_e,function(){var e=i()(d().mark((function e(t,a){var l,c,p,v,S,k,I,q,R;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t;case 2:return l=e.sent,c=l.resultMap,p=l.specWithCurrentSubtrees,e.next=7,o(p,a,{baseDoc:u.url(),modelPropertyMacro:E,parameterMacro:b,requestInterceptor:x,responseInterceptor:_});case 7:if(v=e.sent,S=v.errors,k=v.spec,r.allErrors().size&&n.clearBy((function(e){var t;return"thrown"!==e.get("type")||"resolver"!==e.get("source")||!C()(t=e.get("fullPath")).call(t,(function(e,t){return e===a[t]||void 0===a[t]}))})),h()(S)&&S.length>0&&(I=g()(S).call(S,(function(e){return e.line=e.fullPath?m(f,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",y()(e,"message",{enumerable:!0,value:e.message}),e})),n.newThrownErrBatch(I)),!k||!u.isOAS3()||"components"!==a[0]||"securitySchemes"!==a[1]){e.next=15;break}return e.next=15,w().all(g()(q=A()(R=N()(k)).call(R,(function(e){return"openIdConnect"===e.type}))).call(q,function(){var e=i()(d().mark((function e(t){var n,r;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={url:t.openIdConnectUrl,requestInterceptor:x,responseInterceptor:_},e.prev=1,e.next=4,s(n);case 4:(r=e.sent)instanceof Error||r.status>=400?console.error(r.statusText+" "+n.url):t.openIdConnectData=JSON.parse(r.text),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),console.error(e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}()));case 15:return Q()(c,a,k),Q()(p,a,k),e.abrupt("return",{resultMap:c,specWithCurrentSubtrees:p});case 18:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),w().resolve({resultMap:(u.specResolvedSubtree([])||(0,J.Map)()).toJS(),specWithCurrentSubtrees:u.specJson().toJS()}));case 14:k=e.sent,delete _e.system,_e=[],e.next=22;break;case 19:e.prev=19,e.t0=e.catch(11),console.error(e.t0);case 22:p.updateResolvedSubtree([],k.resultMap);case 23:case"end":return e.stop()}}),e,null,[[11,19]])}))),35),ke=function(e){return function(t){var n;q()(n=g()(_e).call(_e,(function(e){return e.join("@@")}))).call(n,e.join("@@"))>-1||(_e.push(e),_e.system=t,Ae())}};function Ne(e,t,n,r,a){return{type:ae,payload:{path:e,value:r,paramName:t,paramIn:n,isXml:a}}}function Ie(e,t,n,r){return{type:ae,payload:{path:e,param:t,value:n,isXml:r}}}var qe=function(e,t){return{type:ge,payload:{path:e,value:t}}},Re=function(){return{type:ge,payload:{path:[],value:(0,J.Map)()}}},Pe=function(e,t){return{type:se,payload:{pathMethod:e,isOAS3:t}}},Te=function(e,t,n,r){return{type:oe,payload:{pathMethod:e,paramName:t,paramIn:n,includeEmptyValue:r}}};function Oe(e){return{type:me,payload:{pathMethod:e}}}function Me(e,t){return{type:he,payload:{path:e,value:t,key:"consumes_value"}}}function je(e,t){return{type:he,payload:{path:e,value:t,key:"produces_value"}}}var Ve=function(e,t,n){return{payload:{path:e,method:t,res:n},type:le}},De=function(e,t,n){return{payload:{path:e,method:t,req:n},type:ie}},Le=function(e,t,n){return{payload:{path:e,method:t,req:n},type:ce}},Ue=function(e){return{payload:e,type:ue}},ze=function(e){return function(t){var n,r,a=t.fn,o=t.specActions,s=t.specSelectors,l=t.getConfigs,c=t.oas3Selectors,u=e.pathName,p=e.method,m=e.operation,f=l(),v=f.requestInterceptor,y=f.responseInterceptor,E=m.toJS();m&&m.get("parameters")&&P()(n=A()(r=m.get("parameters")).call(r,(function(e){return e&&!0===e.get("allowEmptyValue")}))).call(n,(function(t){if(s.parameterInclusionSettingFor([u,p],t.get("name"),t.get("in"))){e.parameters=e.parameters||{};var n=(0,$.cz)(t,e.parameters);(!n||n&&0===n.size)&&(e.parameters[t.get("name")]="")}}));if(e.contextUrl=W()(s.url()).toString(),E&&E.operationId?e.operationId=E.operationId:E&&u&&p&&(e.operationId=a.opId(E,u,p)),s.isOAS3()){var S,b=O()(S="".concat(u,":")).call(S,p);e.server=c.selectedServer(b)||c.selectedServer();var C=c.serverVariables({server:e.server,namespace:b}).toJS(),x=c.serverVariables({server:e.server}).toJS();e.serverVariables=j()(C).length?C:x,e.requestContentType=c.requestContentType(u,p),e.responseContentType=c.responseContentType(u,p)||"*/*";var w,_=c.requestBodyValue(u,p),k=c.requestBodyInclusionSetting(u,p);if(_&&_.toJS)e.requestBody=A()(w=g()(_).call(_,(function(e){return J.Map.isMap(e)?e.get("value"):e}))).call(w,(function(e,t){return(h()(e)?0!==e.length:!(0,$.O2)(e))||k.get(t)})).toJS();else e.requestBody=_}var N=D()({},e);N=a.buildRequest(N),o.setRequest(e.pathName,e.method,N);var I=function(){var t=i()(d().mark((function t(n){var r,a;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,v.apply(undefined,[n]);case 2:return r=t.sent,a=D()({},r),o.setMutatedRequest(e.pathName,e.method,a),t.abrupt("return",r);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();e.requestInterceptor=I,e.responseInterceptor=y;var q=U()();return a.execute(e).then((function(t){t.duration=U()()-q,o.setResponse(e.pathName,e.method,t)})).catch((function(t){"Failed to fetch"===t.message&&(t.name="",t.message='**Failed to fetch.** \n**Possible Reasons:** \n - CORS \n - Network Failure \n - URL scheme must be "http" or "https" for CORS request.'),o.setResponse(e.pathName,e.method,{error:!0,err:(0,H.serializeError)(t)})}))}},Be=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.path,n=e.method,r=s()(e,ee);return function(e){var o=e.fn.fetch,s=e.specSelectors,l=e.specActions,i=s.specJsonWithResolvedSubtrees().toJS(),c=s.operationScheme(t,n),u=s.contentTypeValues([t,n]).toJS(),p=u.requestContentType,d=u.responseContentType,m=/xml/i.test(p),h=s.parameterValues([t,n],m).toJS();return l.executeRequest(a()(a()({},r),{},{fetch:o,spec:i,pathName:t,method:n,parameters:h,requestContentType:p,scheme:c,responseContentType:d}))}};function Je(e,t){return{type:pe,payload:{path:e,method:t}}}function Fe(e,t){return{type:de,payload:{path:e,method:t}}}function We(e,t,n){return{type:ve,payload:{scheme:e,path:t,method:n}}}},7038:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n(32),a=n(7960),o=n(3881),s=n(7508);function l(){return{statePlugins:{spec:{wrapActions:s,reducers:r.default,actions:a,selectors:o}}}}},32:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>b});var r,a=n(1093),o=n.n(a),s=n(6731),l=n.n(s),i=n(4883),c=n.n(i),u=n(66),p=n.n(u),d=n(3942),m=n.n(d),h=n(4994),f=n.n(h),g=n(5572),v=n(1890),y=n(7504),E=n(3881),S=n(7960);const b=(r={},o()(r,S.UPDATE_SPEC,(function(e,t){return"string"==typeof t.payload?e.set("spec",t.payload):e})),o()(r,S.UPDATE_URL,(function(e,t){return e.set("url",t.payload+"")})),o()(r,S.UPDATE_JSON,(function(e,t){return e.set("json",(0,v.oG)(t.payload))})),o()(r,S.UPDATE_RESOLVED,(function(e,t){return e.setIn(["resolved"],(0,v.oG)(t.payload))})),o()(r,S.UPDATE_RESOLVED_SUBTREE,(function(e,t){var n,r=t.payload,a=r.value,o=r.path;return e.setIn(c()(n=["resolvedSubtrees"]).call(n,l()(o)),(0,v.oG)(a))})),o()(r,S.UPDATE_PARAM,(function(e,t){var n,r,a=t.payload,o=a.path,s=a.paramName,i=a.paramIn,u=a.param,p=a.value,d=a.isXml,m=u?(0,v.V9)(u):c()(n="".concat(i,".")).call(n,s),h=d?"value_xml":"value";return e.setIn(c()(r=["meta","paths"]).call(r,l()(o),["parameters",m,h]),p)})),o()(r,S.UPDATE_EMPTY_PARAM_INCLUSION,(function(e,t){var n,r,a=t.payload,o=a.pathMethod,s=a.paramName,i=a.paramIn,u=a.includeEmptyValue;if(!s||!i)return console.warn("Warning: UPDATE_EMPTY_PARAM_INCLUSION could not generate a paramKey."),e;var p=c()(n="".concat(i,".")).call(n,s);return e.setIn(c()(r=["meta","paths"]).call(r,l()(o),["parameter_inclusions",p]),u)})),o()(r,S.VALIDATE_PARAMS,(function(e,t){var n,r,a=t.payload,o=a.pathMethod,s=a.isOAS3,i=(0,E.specJsonWithResolvedSubtrees)(e).getIn(c()(n=["paths"]).call(n,l()(o))),u=(0,E.parameterValues)(e,o).toJS();return e.updateIn(c()(r=["meta","paths"]).call(r,l()(o),["parameters"]),(0,g.fromJS)({}),(function(t){var n;return p()(n=i.get("parameters",(0,g.List)())).call(n,(function(t,n){var r=(0,v.cz)(n,u),a=(0,E.parameterInclusionSettingFor)(e,o,n.get("name"),n.get("in")),l=(0,v.Ik)(n,r,{bypassRequiredCheck:a,isOAS3:s});return t.setIn([(0,v.V9)(n),"errors"],(0,g.fromJS)(l))}),t)}))})),o()(r,S.CLEAR_VALIDATE_PARAMS,(function(e,t){var n,r=t.payload.pathMethod;return e.updateIn(c()(n=["meta","paths"]).call(n,l()(r),["parameters"]),(0,g.fromJS)([]),(function(e){return m()(e).call(e,(function(e){return e.set("errors",(0,g.fromJS)([]))}))}))})),o()(r,S.SET_RESPONSE,(function(e,t){var n,r=t.payload,a=r.res,o=r.path,s=r.method;(n=a.error?f()({error:!0,name:a.err.name,message:a.err.message,statusCode:a.err.statusCode},a.err.response):a).headers=n.headers||{};var l=e.setIn(["responses",o,s],(0,v.oG)(n));return y.Z.Blob&&a.data instanceof y.Z.Blob&&(l=l.setIn(["responses",o,s,"text"],a.data)),l})),o()(r,S.SET_REQUEST,(function(e,t){var n=t.payload,r=n.req,a=n.path,o=n.method;return e.setIn(["requests",a,o],(0,v.oG)(r))})),o()(r,S.SET_MUTATED_REQUEST,(function(e,t){var n=t.payload,r=n.req,a=n.path,o=n.method;return e.setIn(["mutatedRequests",a,o],(0,v.oG)(r))})),o()(r,S.UPDATE_OPERATION_META_VALUE,(function(e,t){var n,r,a,o,s,i,u=t.payload,p=u.path,d=u.value,m=u.key,h=c()(n=["paths"]).call(n,l()(p)),f=c()(r=["meta","paths"]).call(r,l()(p));return e.getIn(c()(a=["json"]).call(a,l()(h)))||e.getIn(c()(o=["resolved"]).call(o,l()(h)))||e.getIn(c()(s=["resolvedSubtrees"]).call(s,l()(h)))?e.setIn(c()(i=[]).call(i,l()(f),[m]),(0,g.fromJS)(d)):e})),o()(r,S.CLEAR_RESPONSE,(function(e,t){var n=t.payload,r=n.path,a=n.method;return e.deleteIn(["responses",r,a])})),o()(r,S.CLEAR_REQUEST,(function(e,t){var n=t.payload,r=n.path,a=n.method;return e.deleteIn(["requests",r,a])})),o()(r,S.SET_SCHEME,(function(e,t){var n=t.payload,r=n.scheme,a=n.path,o=n.method;return a&&o?e.setIn(["scheme",a,o],r):a||o?void 0:e.setIn(["scheme","_defaultScheme"],r)})),r)},3881:(e,t,n)=>{"use strict";n.r(t),n.d(t,{lastError:()=>O,url:()=>M,specStr:()=>j,specSource:()=>V,specJson:()=>D,specResolved:()=>L,specResolvedSubtree:()=>U,specJsonWithResolvedSubtrees:()=>B,spec:()=>J,isOAS3:()=>F,info:()=>W,externalDocs:()=>H,version:()=>K,semver:()=>Z,paths:()=>G,operations:()=>Y,consumes:()=>X,produces:()=>Q,security:()=>$,securityDefinitions:()=>ee,findDefinition:()=>te,definitions:()=>ne,basePath:()=>re,host:()=>ae,schemes:()=>oe,operationsWithRootInherited:()=>se,tags:()=>le,tagDetails:()=>ie,operationsWithTags:()=>ce,taggedOperations:()=>ue,responses:()=>pe,requests:()=>de,mutatedRequests:()=>me,responseFor:()=>he,requestFor:()=>fe,mutatedRequestFor:()=>ge,allowTryItOutFor:()=>ve,parameterWithMetaByIdentity:()=>ye,parameterInclusionSettingFor:()=>Ee,parameterWithMeta:()=>Se,operationWithMeta:()=>be,getParameter:()=>Ce,hasHost:()=>xe,parameterValues:()=>we,parametersIncludeIn:()=>_e,parametersIncludeType:()=>Ae,contentTypeValues:()=>ke,currentProducesFor:()=>Ne,producesOptionsFor:()=>Ie,consumesOptionsFor:()=>qe,operationScheme:()=>Re,canExecuteScheme:()=>Pe,validateBeforeExecute:()=>Te,getOAS3RequiredRequestBodyContentType:()=>Oe,isMediaTypeSchemaPropertiesEqual:()=>Me});var r=n(8030),a=n.n(r),o=n(6731),s=n.n(o),l=n(4883),i=n.n(l),c=n(600),u=n.n(c),p=n(4235),d=n.n(p),m=n(8493),h=n.n(m),f=n(3942),g=n.n(f),v=n(9998),y=n.n(v),E=n(3580),S=n.n(E),b=n(66),C=n.n(b),x=n(9247),w=n.n(x),_=n(5626),A=n.n(_),k=n(7104),N=n.n(k),I=n(6814),q=n(1890),R=n(5572),P=["get","put","post","delete","options","head","patch","trace"],T=function(e){return e||(0,R.Map)()},O=(0,I.createSelector)(T,(function(e){return e.get("lastError")})),M=(0,I.createSelector)(T,(function(e){return e.get("url")})),j=(0,I.createSelector)(T,(function(e){return e.get("spec")||""})),V=(0,I.createSelector)(T,(function(e){return e.get("specSource")||"not-editor"})),D=(0,I.createSelector)(T,(function(e){return e.get("json",(0,R.Map)())})),L=(0,I.createSelector)(T,(function(e){return e.get("resolved",(0,R.Map)())})),U=function(e,t){var n;return e.getIn(i()(n=["resolvedSubtrees"]).call(n,s()(t)),void 0)},z=function e(t,n){return R.Map.isMap(t)&&R.Map.isMap(n)?n.get("$$ref")?n:(0,R.OrderedMap)().mergeWith(e,t,n):n},B=(0,I.createSelector)(T,(function(e){return(0,R.OrderedMap)().mergeWith(z,e.get("json"),e.get("resolvedSubtrees"))})),J=function(e){return D(e)},F=(0,I.createSelector)(J,(function(){return!1})),W=(0,I.createSelector)(J,(function(e){return je(e&&e.get("info"))})),H=(0,I.createSelector)(J,(function(e){return je(e&&e.get("externalDocs"))})),K=(0,I.createSelector)(W,(function(e){return e&&e.get("version")})),Z=(0,I.createSelector)(K,(function(e){var t;return u()(t=/v?([0-9]*)\.([0-9]*)\.([0-9]*)/i.exec(e)).call(t,1)})),G=(0,I.createSelector)(B,(function(e){return e.get("paths")})),Y=(0,I.createSelector)(G,(function(e){if(!e||e.size<1)return(0,R.List)();var t=(0,R.List)();return e&&d()(e)?(d()(e).call(e,(function(e,n){if(!e||!d()(e))return{};d()(e).call(e,(function(e,r){var a;h()(P).call(P,r)<0||(t=t.push((0,R.fromJS)({path:n,method:r,operation:e,id:i()(a="".concat(r,"-")).call(a,n)})))}))})),t):(0,R.List)()})),X=(0,I.createSelector)(J,(function(e){return(0,R.Set)(e.get("consumes"))})),Q=(0,I.createSelector)(J,(function(e){return(0,R.Set)(e.get("produces"))})),$=(0,I.createSelector)(J,(function(e){return e.get("security",(0,R.List)())})),ee=(0,I.createSelector)(J,(function(e){return e.get("securityDefinitions")})),te=function(e,t){var n=e.getIn(["resolvedSubtrees","definitions",t],null),r=e.getIn(["json","definitions",t],null);return n||r||null},ne=(0,I.createSelector)(J,(function(e){var t=e.get("definitions");return R.Map.isMap(t)?t:(0,R.Map)()})),re=(0,I.createSelector)(J,(function(e){return e.get("basePath")})),ae=(0,I.createSelector)(J,(function(e){return e.get("host")})),oe=(0,I.createSelector)(J,(function(e){return e.get("schemes",(0,R.Map)())})),se=(0,I.createSelector)(Y,X,Q,(function(e,t,n){return g()(e).call(e,(function(e){return e.update("operation",(function(e){if(e){if(!R.Map.isMap(e))return;return e.withMutations((function(e){return e.get("consumes")||e.update("consumes",(function(e){return(0,R.Set)(e).merge(t)})),e.get("produces")||e.update("produces",(function(e){return(0,R.Set)(e).merge(n)})),e}))}return(0,R.Map)()}))}))})),le=(0,I.createSelector)(J,(function(e){var t=e.get("tags",(0,R.List)());return R.List.isList(t)?y()(t).call(t,(function(e){return R.Map.isMap(e)})):(0,R.List)()})),ie=function(e,t){var n,r=le(e)||(0,R.List)();return S()(n=y()(r).call(r,R.Map.isMap)).call(n,(function(e){return e.get("name")===t}),(0,R.Map)())},ce=(0,I.createSelector)(se,le,(function(e,t){return C()(e).call(e,(function(e,t){var n=(0,R.Set)(t.getIn(["operation","tags"]));return n.count()<1?e.update("default",(0,R.List)(),(function(e){return e.push(t)})):C()(n).call(n,(function(e,n){return e.update(n,(0,R.List)(),(function(e){return e.push(t)}))}),e)}),C()(t).call(t,(function(e,t){return e.set(t.get("name"),(0,R.List)())}),(0,R.OrderedMap)()))})),ue=function(e){return function(t){var n,r=(0,t.getConfigs)(),a=r.tagsSorter,o=r.operationsSorter;return g()(n=ce(e).sortBy((function(e,t){return t}),(function(e,t){var n="function"==typeof a?a:q.wh.tagsSorter[a];return n?n(e,t):null}))).call(n,(function(t,n){var r="function"==typeof o?o:q.wh.operationsSorter[o],a=r?w()(t).call(t,r):t;return(0,R.Map)({tagDetails:ie(e,n),operations:a})}))}},pe=(0,I.createSelector)(T,(function(e){return e.get("responses",(0,R.Map)())})),de=(0,I.createSelector)(T,(function(e){return e.get("requests",(0,R.Map)())})),me=(0,I.createSelector)(T,(function(e){return e.get("mutatedRequests",(0,R.Map)())})),he=function(e,t,n){return pe(e).getIn([t,n],null)},fe=function(e,t,n){return de(e).getIn([t,n],null)},ge=function(e,t,n){return me(e).getIn([t,n],null)},ve=function(){return!0},ye=function(e,t,n){var r,a,o=B(e).getIn(i()(r=["paths"]).call(r,s()(t),["parameters"]),(0,R.OrderedMap)()),l=e.getIn(i()(a=["meta","paths"]).call(a,s()(t),["parameters"]),(0,R.OrderedMap)()),c=g()(o).call(o,(function(e){var t,r,a,o=l.get(i()(t="".concat(n.get("in"),".")).call(t,n.get("name"))),s=l.get(i()(r=i()(a="".concat(n.get("in"),".")).call(a,n.get("name"),".hash-")).call(r,n.hashCode()));return(0,R.OrderedMap)().merge(e,o,s)}));return S()(c).call(c,(function(e){return e.get("in")===n.get("in")&&e.get("name")===n.get("name")}),(0,R.OrderedMap)())},Ee=function(e,t,n,r){var a,o,l=i()(a="".concat(r,".")).call(a,n);return e.getIn(i()(o=["meta","paths"]).call(o,s()(t),["parameter_inclusions",l]),!1)},Se=function(e,t,n,r){var a,o=B(e).getIn(i()(a=["paths"]).call(a,s()(t),["parameters"]),(0,R.OrderedMap)()),l=S()(o).call(o,(function(e){return e.get("in")===r&&e.get("name")===n}),(0,R.OrderedMap)());return ye(e,t,l)},be=function(e,t,n){var r,a=B(e).getIn(["paths",t,n],(0,R.OrderedMap)()),o=e.getIn(["meta","paths",t,n],(0,R.OrderedMap)()),s=g()(r=a.get("parameters",(0,R.List)())).call(r,(function(r){return ye(e,[t,n],r)}));return(0,R.OrderedMap)().merge(a,o).set("parameters",s)};function Ce(e,t,n,r){var a;t=t||[];var o=e.getIn(i()(a=["meta","paths"]).call(a,s()(t),["parameters"]),(0,R.fromJS)([]));return S()(o).call(o,(function(e){return R.Map.isMap(e)&&e.get("name")===n&&e.get("in")===r}))||(0,R.Map)()}var xe=(0,I.createSelector)(J,(function(e){var t=e.get("host");return"string"==typeof t&&t.length>0&&"/"!==t[0]}));function we(e,t,n){var r;t=t||[];var a=be.apply(void 0,i()(r=[e]).call(r,s()(t))).get("parameters",(0,R.List)());return C()(a).call(a,(function(e,t){var r=n&&"body"===t.get("in")?t.get("value_xml"):t.get("value");return e.set((0,q.V9)(t,{allowHashes:!1}),r)}),(0,R.fromJS)({}))}function _e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(R.List.isList(e))return A()(e).call(e,(function(e){return R.Map.isMap(e)&&e.get("in")===t}))}function Ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(R.List.isList(e))return A()(e).call(e,(function(e){return R.Map.isMap(e)&&e.get("type")===t}))}function ke(e,t){var n,r;t=t||[];var a=B(e).getIn(i()(n=["paths"]).call(n,s()(t)),(0,R.fromJS)({})),o=e.getIn(i()(r=["meta","paths"]).call(r,s()(t)),(0,R.fromJS)({})),l=Ne(e,t),c=a.get("parameters")||new R.List,u=o.get("consumes_value")?o.get("consumes_value"):Ae(c,"file")?"multipart/form-data":Ae(c,"formData")?"application/x-www-form-urlencoded":void 0;return(0,R.fromJS)({requestContentType:u,responseContentType:l})}function Ne(e,t){var n,r;t=t||[];var a=B(e).getIn(i()(n=["paths"]).call(n,s()(t)),null);if(null!==a){var o=e.getIn(i()(r=["meta","paths"]).call(r,s()(t),["produces_value"]),null),l=a.getIn(["produces",0],null);return o||l||"application/json"}}function Ie(e,t){var n;t=t||[];var r=B(e),o=r.getIn(i()(n=["paths"]).call(n,s()(t)),null);if(null!==o){var l=t,c=a()(l,1)[0],u=o.get("produces",null),p=r.getIn(["paths",c,"produces"],null),d=r.getIn(["produces"],null);return u||p||d}}function qe(e,t){var n;t=t||[];var r=B(e),o=r.getIn(i()(n=["paths"]).call(n,s()(t)),null);if(null!==o){var l=t,c=a()(l,1)[0],u=o.get("consumes",null),p=r.getIn(["paths",c,"consumes"],null),d=r.getIn(["consumes"],null);return u||p||d}}var Re=function(e,t,n){var r=e.get("url").match(/^([a-z][a-z0-9+\-.]*):/),a=N()(r)?r[1]:null;return e.getIn(["scheme",t,n])||e.getIn(["scheme","_defaultScheme"])||a||""},Pe=function(e,t,n){var r;return h()(r=["http","https"]).call(r,Re(e,t,n))>-1},Te=function(e,t){var n;t=t||[];var r=e.getIn(i()(n=["meta","paths"]).call(n,s()(t),["parameters"]),(0,R.fromJS)([])),a=!0;return d()(r).call(r,(function(e){var t=e.get("errors");t&&t.count()&&(a=!1)})),a},Oe=function(e,t){var n,r,a={requestBody:!1,requestContentType:{}},o=e.getIn(i()(n=["resolvedSubtrees","paths"]).call(n,s()(t),["requestBody"]),(0,R.fromJS)([]));return o.size<1||(o.getIn(["required"])&&(a.requestBody=o.getIn(["required"])),d()(r=o.getIn(["content"]).entrySeq()).call(r,(function(e){var t=e[0];if(e[1].getIn(["schema","required"])){var n=e[1].getIn(["schema","required"]).toJS();a.requestContentType[t]=n}}))),a},Me=function(e,t,n,r){var a;if((n||r)&&n===r)return!0;var o=e.getIn(i()(a=["resolvedSubtrees","paths"]).call(a,s()(t),["requestBody","content"]),(0,R.fromJS)([]));if(o.size<2||!n||!r)return!1;var l=o.getIn([n,"schema","properties"],(0,R.fromJS)([])),c=o.getIn([r,"schema","properties"],(0,R.fromJS)([]));return!!l.equals(c)};function je(e){return R.Map.isMap(e)?e:new R.Map}},7508:(e,t,n)=>{"use strict";n.r(t),n.d(t,{updateSpec:()=>c,updateJsonSpec:()=>u,executeRequest:()=>p,validateParams:()=>d});var r=n(7252),a=n.n(r),o=n(4235),s=n.n(o),l=n(1712),i=n.n(l),c=function(e,t){var n=t.specActions;return function(){e.apply(void 0,arguments),n.parseToJson.apply(n,arguments)}},u=function(e,t){var n=t.specActions;return function(){for(var t=arguments.length,r=new Array(t),o=0;o{"use strict";n.r(t),n.d(t,{loaded:()=>r});var r=function(e,t){return function(){e.apply(void 0,arguments);var n=t.getConfigs().withCredentials;void 0!==n&&(t.fn.fetch.withCredentials="string"==typeof n?"true"===n:!!n)}}},8901:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>h});var r=n(4883),a=n.n(r);const o=require("swagger-client/es/resolver");var s=n.n(o);const l=require("swagger-client/es/execute"),i=require("swagger-client/es/http");var c=n.n(i);const u=require("swagger-client/es/subtree-resolver");var p=n.n(u),d=n(6765),m=n(4852);function h(e){var t=e.configs,n=e.getConfigs;return{fn:{fetch:(0,i.makeHttp)(c(),t.preFetch,t.postFetch),buildRequest:l.buildRequest,execute:l.execute,resolve:s(),resolveSubtree:function(e,t,r){var o;if(void 0===r){var s=n();r={modelPropertyMacro:s.modelPropertyMacro,parameterMacro:s.parameterMacro,requestInterceptor:s.requestInterceptor,responseInterceptor:s.responseInterceptor}}for(var l=arguments.length,i=new Array(l>3?l-3:0),c=3;c{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(1890);function a(){return{fn:{shallowEqualKeys:r.be}}}},8347:(e,t,n)=>{"use strict";n.r(t),n.d(t,{getDisplayName:()=>r});var r=function(e){return e.displayName||e.name||"Component"}},3420:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n(8344),a=n.n(r),o=n(1890),s=n(290),l=n(8347),i=n(7156);const c=function(e){var t,n=e.getComponents,r=e.getStore,c=e.getSystem,u=(t=(0,s.getComponent)(c,r,n),(0,o.HP)(t,(function(){for(var e=arguments.length,t=new Array(e),n=0;n{"use strict";n.r(t),n.d(t,{getComponent:()=>T,render:()=>P,withMappedContainer:()=>R});var r=n(6768),a=n.n(r),o=n(67),s=n.n(o),l=n(4250),i=n.n(l),c=n(6349),u=n.n(c),p=n(4606),d=n.n(p),m=n(4291),h=n.n(m),f=n(1885),g=n.n(f),v=n(7252),y=n.n(v),E=n(6689),S=n.n(E);const b=require("react-dom");var C=n.n(b),x=n(6695);const w=require("react-redux"),_=require("lodash/omit");var A=n.n(_);const k=require("lodash/identity");var N=n.n(k),I=function(e,t,n){return(0,x.compose)(n?function(e,t){return function(n){var r=e().fn,a=function(e){h()(a,e);var r=g()(a);function a(){return u()(this,a),r.apply(this,arguments)}return d()(a,[{key:"render",value:function(){return S().createElement(w.Provider,{store:t},S().createElement(n,i()({},this.props,this.context)))}}]),a}(E.Component);return a.displayName="WithRoot(".concat(r.getDisplayName(n),")"),a}}(e,n):N(),(0,w.connect)((function(n,r){var a,o=s()(s()({},r),e()),l=(null===(a=t.prototype)||void 0===a?void 0:a.mapStateToProps)||function(e){return{state:e}};return l(n,o)})),function(e){return function(t){var n=e().fn,r=function(n){h()(a,n);var r=g()(a);function a(){return u()(this,a),r.apply(this,arguments)}return d()(a,[{key:"render",value:function(){return S().createElement(t,i()({},e(),this.props,this.context))}}]),a}(E.Component);return r.displayName="WithSystem(".concat(n.getDisplayName(t),")"),r}}(e))(t)},q=function(e,t,n,r){for(var a in t){var o=t[a];"function"==typeof o&&o(n[a],r[a],e())}},R=function(e,t,n){return function(t,r){var a=e().fn,o=n(t,"root"),s=function(t){h()(a,t);var n=g()(a);function a(t,o){var s;return u()(this,a),s=n.call(this,t,o),q(e,r,t,{}),s}return d()(a,[{key:"UNSAFE_componentWillReceiveProps",value:function(t){q(e,r,t,this.props)}},{key:"render",value:function(){var e=A()(this.props,r?y()(r):[]);return S().createElement(o,e)}}]),a}(E.Component);return s.displayName="WithMappedContainer(".concat(a.getDisplayName(o),")"),s}},P=function(e,t,n,r){return function(a){var o=n(e,t,r)("App","root");C().render(S().createElement(o,null),a)}},T=function(e,t,n){return function(r,o){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"!=typeof r)throw new TypeError("Need a string, to fetch a component. Was given a "+a()(r));var l=n(r);return l?o?"root"===o?I(e,l,t()):I(e,l):l:(s.failSilently||e().log.warn("Could not find component:",r),null)}}},6068:(e,t,n)=>{"use strict";n.d(t,{d3:()=>i(),C2:()=>V});var r=n(7252),a=n.n(r),o=n(2605),s=n.n(o);const l=require("react-syntax-highlighter/dist/esm/light");var i=n.n(l);const c=require("react-syntax-highlighter/dist/esm/languages/hljs/javascript");var u=n.n(c);const p=require("react-syntax-highlighter/dist/esm/languages/hljs/json");var d=n.n(p);const m=require("react-syntax-highlighter/dist/esm/languages/hljs/xml");var h=n.n(m);const f=require("react-syntax-highlighter/dist/esm/languages/hljs/bash");var g=n.n(f);const v=require("react-syntax-highlighter/dist/esm/languages/hljs/yaml");var y=n.n(v);const E=require("react-syntax-highlighter/dist/esm/languages/hljs/http");var S=n.n(E);const b=require("react-syntax-highlighter/dist/esm/languages/hljs/powershell");var C=n.n(b);const x=require("react-syntax-highlighter/dist/esm/styles/hljs/agate");var w=n.n(x);const _=require("react-syntax-highlighter/dist/esm/styles/hljs/arta");var A=n.n(_);const k=require("react-syntax-highlighter/dist/esm/styles/hljs/monokai");var N=n.n(k);const I=require("react-syntax-highlighter/dist/esm/styles/hljs/nord");var q=n.n(I);const R=require("react-syntax-highlighter/dist/esm/styles/hljs/obsidian");var P=n.n(R);const T=require("react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night");var O=n.n(T);i().registerLanguage("json",d()),i().registerLanguage("js",u()),i().registerLanguage("xml",h()),i().registerLanguage("yaml",y()),i().registerLanguage("http",S()),i().registerLanguage("bash",g()),i().registerLanguage("powershell",C()),i().registerLanguage("javascript",u());var M={agate:w(),arta:A(),monokai:N(),nord:q(),obsidian:P(),"tomorrow-night":O()},j=a()(M),V=function(e){return s()(j).call(j,e)?M[e]:(console.warn("Request style '".concat(e,"' is not available, returning default instead")),w())}},1890:(e,t,n)=>{"use strict";n.d(t,{r3:()=>Fe,GZ:()=>He,Xb:()=>lt,oJ:()=>Xe,XV:()=>tt,iQ:()=>Re,J6:()=>Qe,DR:()=>Te,oG:()=>be,Uj:()=>st,QG:()=>Ye,po:()=>et,nX:()=>$e,gp:()=>Pe,xi:()=>Be,kJ:()=>Ae,O2:()=>ct,LQ:()=>xe,Wl:()=>_e,Kn:()=>we,HP:()=>ke,AF:()=>Ce,D$:()=>rt,Ay:()=>Ne,Q2:()=>Ie,mz:()=>Se,V9:()=>at,cz:()=>ot,UG:()=>Je,Zl:()=>Oe,hW:()=>Ge,Nm:()=>Ze,be:()=>Ke,wh:()=>We,Pz:()=>nt,_5:()=>qe,Ik:()=>je});var r=n(6731),a=n.n(r),o=(n(8030),n(6768)),s=n.n(o),l=n(1771),i=n.n(l),c=n(7104),u=n.n(c),p=n(3942),d=n.n(p),m=n(7862),h=n.n(m),f=n(4883),g=n.n(f),v=n(4235),y=n.n(v),E=n(9998),S=n.n(E),b=n(7252),C=n.n(b),x=(n(593),n(66)),w=n.n(x),_=n(4994),A=n.n(_),k=n(9247),N=n.n(k),I=n(600),q=n.n(I),R=n(5626),P=n.n(R),T=(n(2605),n(8344)),O=n.n(T),M=n(8493),j=n.n(M),V=n(3580),D=n.n(V),L=n(3262),U=n.n(L),z=n(7390),B=n.n(z),J=n(5572),F=n.n(J);const W=require("@braintree/sanitize-url"),H=require("lodash/camelCase");var K=n.n(H);const Z=require("lodash/upperFirst");var G=n.n(Z),Y=n(541),X=n.n(Y);const Q=require("lodash/find");var $=n.n(Q);const ee=require("lodash/some");var te=n.n(ee);const ne=require("lodash/eq");var re=n.n(ne),ae=n(5716),oe=n.n(ae),se=n(4128),le=n(7504);const ie=require("css.escape");var ce=n.n(ie),ue=n(9069),pe=n(185),de=n.n(pe);const me=require("sha.js");var he=n.n(me),fe=n(9793),ge=n.n(fe),ve=n(871).Buffer,ye="default",Ee=function(e){return F().Iterable.isIterable(e)};function Se(e){return we(e)?Ee(e)?e.toJS():e:{}}function be(e){var t,n;if(Ee(e))return e;if(e instanceof le.Z.File)return e;if(!we(e))return e;if(u()(e))return d()(n=F().Seq(e)).call(n,be).toList();if(oe()(h()(e))){var r,a=function(e){if(!oe()(h()(e)))return e;var t,n={},r="_**[]",a={},o=i()(h()(e).call(e));try{for(o.s();!(t=o.n()).done;){var s=t.value;if(n[s[0]]||a[s[0]]&&a[s[0]].containsMultiple){var l,c,u,p;if(!a[s[0]])a[s[0]]={containsMultiple:!0,length:1},n[g()(u=g()(p="".concat(s[0])).call(p,r)).call(u,a[s[0]].length)]=n[s[0]],delete n[s[0]];a[s[0]].length+=1,n[g()(l=g()(c="".concat(s[0])).call(c,r)).call(l,a[s[0]].length)]=s[1]}else n[s[0]]=s[1]}}catch(e){o.e(e)}finally{o.f()}return n}(e);return d()(r=F().OrderedMap(a)).call(r,be)}return d()(t=F().OrderedMap(e)).call(t,be)}function Ce(e){return u()(e)?e:[e]}function xe(e){return"function"==typeof e}function we(e){return!!e&&"object"===s()(e)}function _e(e){return"function"==typeof e}function Ae(e){return u()(e)}var ke=X();function Ne(e,t){var n;return w()(n=C()(e)).call(n,(function(n,r){return n[r]=t(e[r],r),n}),{})}function Ie(e,t){var n;return w()(n=C()(e)).call(n,(function(n,r){var a=t(e[r],r);return a&&"object"===s()(a)&&A()(n,a),n}),{})}function qe(e){return function(t){t.dispatch,t.getState;return function(t){return function(n){return"function"==typeof n?n(e()):t(n)}}}}function Re(e){var t,n=e.keySeq();return n.contains(ye)?ye:N()(t=S()(n).call(n,(function(e){return"2"===(e+"")[0]}))).call(t).first()}function Pe(e,t){if(!F().Iterable.isIterable(e))return F().List();var n=e.getIn(u()(t)?t:[t]);return F().List.isList(n)?n:F().List()}function Te(e){var t,n=[/filename\*=[^']+'\w*'"([^"]+)";?/i,/filename\*=[^']+'\w*'([^;]+);?/i,/filename="([^;]*);?"/i,/filename=([^;]*);?/i];if(P()(n).call(n,(function(n){return null!==(t=n.exec(e))})),null!==t&&t.length>1)try{return decodeURIComponent(t[1])}catch(e){console.error(e)}return null}function Oe(e){return t=e.replace(/\.[^./]*$/,""),G()(K()(t));var t}function Me(e,t,n,r,o){if(!t)return[];var l=[],i=t.get("nullable"),c=t.get("required"),p=t.get("maximum"),m=t.get("minimum"),h=t.get("type"),f=t.get("format"),v=t.get("maxLength"),E=t.get("minLength"),b=t.get("uniqueItems"),C=t.get("maxItems"),x=t.get("minItems"),w=t.get("pattern"),_=n||!0===c,A=null!=e;if(i&&null===e||!h||!(_||A&&"array"===h||!(!_&&!A)))return[];var k="string"===h&&e,N="array"===h&&u()(e)&&e.length,I="array"===h&&F().List.isList(e)&&e.count(),q=[k,N,I,"array"===h&&"string"==typeof e&&e,"file"===h&&e instanceof le.Z.File,"boolean"===h&&(e||!1===e),"number"===h&&(e||0===e),"integer"===h&&(e||0===e),"object"===h&&"object"===s()(e)&&null!==e,"object"===h&&"string"==typeof e&&e],R=P()(q).call(q,(function(e){return!!e}));if(_&&!R&&!r)return l.push("Required field is not provided"),l;if("object"===h&&(null===o||"application/json"===o)){var T,O=e;if("string"==typeof e)try{O=JSON.parse(e)}catch(e){return l.push("Parameter string value must be valid JSON"),l}if(t&&t.has("required")&&_e(c.isList)&&c.isList()&&y()(c).call(c,(function(e){void 0===O[e]&&l.push({propKey:e,error:"Required property not found"})})),t&&t.has("properties"))y()(T=t.get("properties")).call(T,(function(e,t){var n=Me(O[t],e,!1,r,o);l.push.apply(l,a()(d()(n).call(n,(function(e){return{propKey:t,error:e}}))))}))}if(w){var M=function(e,t){if(!new RegExp(t).test(e))return"Value must follow pattern "+t}(e,w);M&&l.push(M)}if(x&&"array"===h){var j=function(e,t){var n;if(!e&&t>=1||e&&e.lengtht)return g()(n="Array must not contain more then ".concat(t," item")).call(n,1===t?"":"s")}(e,C);V&&l.push({needRemove:!0,error:V})}if(b&&"array"===h){var D=function(e,t){if(e&&("true"===t||!0===t)){var n=(0,J.fromJS)(e),r=n.toSet();if(e.length>r.size){var a=(0,J.Set)();if(y()(n).call(n,(function(e,t){S()(n).call(n,(function(t){return _e(t.equals)?t.equals(e):t===e})).size>1&&(a=a.add(t))})),0!==a.size)return d()(a).call(a,(function(e){return{index:e,error:"No duplicates allowed."}})).toArray()}}}(e,b);D&&l.push.apply(l,a()(D))}if(v||0===v){var L=function(e,t){var n;if(e.length>t)return g()(n="Value must be no longer than ".concat(t," character")).call(n,1!==t?"s":"")}(e,v);L&&l.push(L)}if(E){var U=function(e,t){var n;if(e.lengtht)return"Value must be less than ".concat(t)}(e,p);z&&l.push(z)}if(m||0===m){var B=function(e,t){if(e2&&void 0!==arguments[2]?arguments[2]:{},r=n.isOAS3,a=void 0!==r&&r,o=n.bypassRequiredCheck,s=void 0!==o&&o,l=e.get("required"),i=(0,ue.Z)(e,{isOAS3:a}),c=i.schema,u=i.parameterContentMediaType;return Me(t,c,l,s,u)},Ve=function(e,t,n){if(e&&(!e.xml||!e.xml.name)){if(e.xml=e.xml||{},!e.$$ref)return e.type||e.items||e.properties||e.additionalProperties?'\n\x3c!-- XML example cannot be generated; root element name is undefined --\x3e':null;var r=e.$$ref.match(/\S*\/(\S+)$/);e.xml.name=r[1]}return(0,se.memoizedCreateXMLExample)(e,t,n)},De=[{when:/json/,shouldStringifyTypes:["string"]}],Le=["object"],Ue=function(e,t,n,r){var o=(0,se.memoizedSampleFromSchema)(e,t,r),l=s()(o),i=w()(De).call(De,(function(e,t){var r;return t.when.test(n)?g()(r=[]).call(r,a()(e),a()(t.shouldStringifyTypes)):e}),Le);return te()(i,(function(e){return e===l}))?O()(o,null,2):o},ze=function(e,t,n,r){var a,o=Ue(e,t,n,r);try{"\n"===(a=ge().dump(ge().load(o),{lineWidth:-1},{schema:fe.JSON_SCHEMA}))[a.length-1]&&(a=q()(a).call(a,0,a.length-1))}catch(e){return console.error(e),"error: could not generate yaml example"}return a.replace(/\t/g," ")},Be=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return e&&_e(e.toJS)&&(e=e.toJS()),r&&_e(r.toJS)&&(r=r.toJS()),/xml/.test(t)?Ve(e,n,r):/(yaml|yml)/.test(t)?ze(e,n,t,r):Ue(e,n,t,r)},Je=function(){var e={},t=le.Z.location.search;if(!t)return{};if(""!=t){var n=t.substr(1).split("&");for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(r=n[r].split("="),e[decodeURIComponent(r[0])]=r[1]&&decodeURIComponent(r[1])||"")}return e},Fe=function(e){return(e instanceof ve?e:ve.from(e.toString(),"utf-8")).toString("base64")},We={operationsSorter:{alpha:function(e,t){return e.get("path").localeCompare(t.get("path"))},method:function(e,t){return e.get("method").localeCompare(t.get("method"))}},tagsSorter:{alpha:function(e,t){return e.localeCompare(t)}}},He=function(e){var t=[];for(var n in e){var r=e[n];void 0!==r&&""!==r&&t.push([n,"=",encodeURIComponent(r).replace(/%20/g,"+")].join(""))}return t.join("&")},Ke=function(e,t,n){return!!$()(n,(function(n){return re()(e[n],t[n])}))};function Ze(e){return"string"!=typeof e||""===e?"":(0,W.sanitizeUrl)(e)}function Ge(e){return!(!e||j()(e).call(e,"localhost")>=0||j()(e).call(e,"127.0.0.1")>=0||"none"===e)}function Ye(e){if(!F().OrderedMap.isOrderedMap(e))return null;if(!e.size)return null;var t=D()(e).call(e,(function(e,t){return U()(t).call(t,"2")&&C()(e.get("content")||{}).length>0})),n=e.get("default")||F().OrderedMap(),r=(n.get("content")||F().OrderedMap()).keySeq().toJS().length?n:null;return t||r}var Xe=function(e){return"string"==typeof e||e instanceof String?B()(e).call(e).replace(/\s/g,"%20"):""},Qe=function(e){return ce()(Xe(e).replace(/%20/g,"_"))},$e=function(e){return S()(e).call(e,(function(e,t){return/^x-/.test(t)}))},et=function(e){return S()(e).call(e,(function(e,t){return/^pattern|maxLength|minLength|maximum|minimum/.test(t)}))};function tt(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return!0};if("object"!==s()(e)||u()(e)||null===e||!t)return e;var a=A()({},e);return y()(n=C()(a)).call(n,(function(e){e===t&&r(a[e],e)?delete a[e]:a[e]=tt(a[e],t,r)})),a}function nt(e){if("string"==typeof e)return e;if(e&&e.toJS&&(e=e.toJS()),"object"===s()(e)&&null!==e)try{return O()(e,null,2)}catch(t){return String(e)}return null==e?"":e.toString()}function rt(e){return"number"==typeof e?e.toString():e}function at(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.returnAll,r=void 0!==n&&n,a=t.allowHashes,o=void 0===a||a;if(!F().Map.isMap(e))throw new Error("paramToIdentifier: received a non-Im.Map parameter as input");var s,l,i,c=e.get("name"),u=e.get("in"),p=[];e&&e.hashCode&&u&&c&&o&&p.push(g()(s=g()(l="".concat(u,".")).call(l,c,".hash-")).call(s,e.hashCode()));u&&c&&p.push(g()(i="".concat(u,".")).call(i,c));return p.push(c),r?p:p[0]||""}function ot(e,t){var n,r=at(e,{returnAll:!0});return S()(n=d()(r).call(r,(function(e){return t[e]}))).call(n,(function(e){return void 0!==e}))[0]}function st(){return it(de()(32).toString("base64"))}function lt(e){return it(he()("sha256").update(e).digest("base64"))}function it(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var ct=function(e){return!e||!(!Ee(e)||!e.isEmpty())}},2518:(e,t,n)=>{"use strict";function r(e){return function(e){try{return!!JSON.parse(e)}catch(e){return null}}(e)?"json":null}n.d(t,{O:()=>r})},7504:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=function(){var e={location:{},history:{},open:function(){},close:function(){},File:function(){}};if("undefined"==typeof window)return e;try{e=window;for(var t=0,n=["File","Blob","FormData"];t{"use strict";n.d(t,{Z:()=>u});var r=n(9998),a=n.n(r),o=n(2605),s=n.n(o),l=n(5572),i=n.n(l),c=i().Set.of("type","format","items","default","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","enum","multipleOf");function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isOAS3;if(!i().Map.isMap(e))return{schema:i().Map(),parameterContentMediaType:null};if(!n)return"body"===e.get("in")?{schema:e.get("schema",i().Map()),parameterContentMediaType:null}:{schema:a()(e).call(e,(function(e,t){return s()(c).call(c,t)})),parameterContentMediaType:null};if(e.get("content")){var r=e.get("content",i().Map({})).keySeq(),o=r.first();return{schema:e.getIn(["content",o,"schema"],i().Map()),parameterContentMediaType:o}}return{schema:e.get("schema",i().Map()),parameterContentMediaType:null}}},7156:(e,t,n)=>{"use strict";n.d(t,{Z:()=>j});var r=n(6349),a=n.n(r),o=n(4606),s=n.n(o);const l=require("@babel/runtime-corejs3/helpers/get");var i=n.n(l);const c=require("@babel/runtime-corejs3/helpers/getPrototypeOf");var u=n.n(c),p=n(4291),d=n.n(p),m=n(1885),h=n.n(m);const f=require("@babel/runtime-corejs3/helpers/wrapNativeSuper");var g=n.n(f),v=n(7104),y=n.n(v),E=n(7834),S=n.n(E),b=n(1733),C=n.n(b),x=n(874),w=n.n(x),_=n(3580),A=n.n(_);const k=require("@babel/runtime-corejs3/core-js-stable/instance/find-index");var N=n.n(k),I=n(2611),q=n.n(I),R=n(541),P=n.n(R),T=function(e){return function(t){return y()(e)&&y()(t)&&e.length===t.length&&S()(e).call(e,(function(e,n){return e===t[n]}))}},O=function(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:O,n=P().Cache;P().Cache=M;var r=P()(e,t);return P().Cache=n,r}},5102:(e,t,n)=>{var r={"./all.js":5308,"./auth/actions.js":5812,"./auth/index.js":3705,"./auth/reducers.js":3962,"./auth/selectors.js":35,"./auth/spec-wrap-actions.js":8302,"./configs/actions.js":714,"./configs/helpers.js":2256,"./configs/index.js":1661,"./configs/reducers.js":7743,"./configs/selectors.js":9018,"./configs/spec-actions.js":2698,"./deep-linking/helpers.js":1970,"./deep-linking/index.js":4980,"./deep-linking/layout.js":2179,"./deep-linking/operation-tag-wrapper.jsx":4584,"./deep-linking/operation-wrapper.jsx":877,"./download-url.js":8011,"./err/actions.js":4966,"./err/error-transformers/hook.js":2860,"./err/error-transformers/transformers/not-of-type.js":2392,"./err/error-transformers/transformers/parameter-oneof.js":1835,"./err/index.js":7793,"./err/reducers.js":3527,"./err/selectors.js":7667,"./filter/index.js":9978,"./filter/opsFilter.js":4309,"./layout/actions.js":5474,"./layout/index.js":6821,"./layout/reducers.js":5672,"./layout/selectors.js":4400,"./layout/spec-extensions/wrap-selector.js":8989,"./logs/index.js":9150,"./oas3/actions.js":7002,"./oas3/auth-extensions/wrap-selectors.js":3723,"./oas3/components/callbacks.jsx":3427,"./oas3/components/http-auth.jsx":6775,"./oas3/components/index.js":6467,"./oas3/components/operation-link.jsx":5757,"./oas3/components/operation-servers.jsx":6796,"./oas3/components/request-body-editor.jsx":5327,"./oas3/components/request-body.jsx":2458,"./oas3/components/servers-container.jsx":9928,"./oas3/components/servers.jsx":6617,"./oas3/helpers.jsx":7779,"./oas3/index.js":7451,"./oas3/reducers.js":5013,"./oas3/selectors.js":5065,"./oas3/spec-extensions/selectors.js":1741,"./oas3/spec-extensions/wrap-selectors.js":2044,"./oas3/wrap-components/auth-item.jsx":356,"./oas3/wrap-components/index.js":7761,"./oas3/wrap-components/json-schema-string.jsx":287,"./oas3/wrap-components/markdown.jsx":2460,"./oas3/wrap-components/model.jsx":3499,"./oas3/wrap-components/online-validator-badge.js":58,"./oas3/wrap-components/version-stamp.jsx":9487,"./on-complete/index.js":8560,"./request-snippets/fn.js":8223,"./request-snippets/index.js":6575,"./request-snippets/request-snippets.jsx":4206,"./request-snippets/selectors.js":4669,"./safe-render/components/error-boundary.jsx":6195,"./safe-render/components/fallback.jsx":9403,"./safe-render/fn.jsx":6189,"./safe-render/index.js":9595,"./samples/fn.js":4128,"./samples/index.js":8883,"./spec/actions.js":7960,"./spec/index.js":7038,"./spec/reducers.js":32,"./spec/selectors.js":3881,"./spec/wrap-actions.js":7508,"./swagger-js/configs-wrap-actions.js":4852,"./swagger-js/index.js":8901,"./util/index.js":8525,"./view/fn.js":8347,"./view/index.js":3420,"./view/root-injects.jsx":290,"core/plugins/all.js":5308,"core/plugins/auth/actions.js":5812,"core/plugins/auth/index.js":3705,"core/plugins/auth/reducers.js":3962,"core/plugins/auth/selectors.js":35,"core/plugins/auth/spec-wrap-actions.js":8302,"core/plugins/configs/actions.js":714,"core/plugins/configs/helpers.js":2256,"core/plugins/configs/index.js":1661,"core/plugins/configs/reducers.js":7743,"core/plugins/configs/selectors.js":9018,"core/plugins/configs/spec-actions.js":2698,"core/plugins/deep-linking/helpers.js":1970,"core/plugins/deep-linking/index.js":4980,"core/plugins/deep-linking/layout.js":2179,"core/plugins/deep-linking/operation-tag-wrapper.jsx":4584,"core/plugins/deep-linking/operation-wrapper.jsx":877,"core/plugins/download-url.js":8011,"core/plugins/err/actions.js":4966,"core/plugins/err/error-transformers/hook.js":2860,"core/plugins/err/error-transformers/transformers/not-of-type.js":2392,"core/plugins/err/error-transformers/transformers/parameter-oneof.js":1835,"core/plugins/err/index.js":7793,"core/plugins/err/reducers.js":3527,"core/plugins/err/selectors.js":7667,"core/plugins/filter/index.js":9978,"core/plugins/filter/opsFilter.js":4309,"core/plugins/layout/actions.js":5474,"core/plugins/layout/index.js":6821,"core/plugins/layout/reducers.js":5672,"core/plugins/layout/selectors.js":4400,"core/plugins/layout/spec-extensions/wrap-selector.js":8989,"core/plugins/logs/index.js":9150,"core/plugins/oas3/actions.js":7002,"core/plugins/oas3/auth-extensions/wrap-selectors.js":3723,"core/plugins/oas3/components/callbacks.jsx":3427,"core/plugins/oas3/components/http-auth.jsx":6775,"core/plugins/oas3/components/index.js":6467,"core/plugins/oas3/components/operation-link.jsx":5757,"core/plugins/oas3/components/operation-servers.jsx":6796,"core/plugins/oas3/components/request-body-editor.jsx":5327,"core/plugins/oas3/components/request-body.jsx":2458,"core/plugins/oas3/components/servers-container.jsx":9928,"core/plugins/oas3/components/servers.jsx":6617,"core/plugins/oas3/helpers.jsx":7779,"core/plugins/oas3/index.js":7451,"core/plugins/oas3/reducers.js":5013,"core/plugins/oas3/selectors.js":5065,"core/plugins/oas3/spec-extensions/selectors.js":1741,"core/plugins/oas3/spec-extensions/wrap-selectors.js":2044,"core/plugins/oas3/wrap-components/auth-item.jsx":356,"core/plugins/oas3/wrap-components/index.js":7761,"core/plugins/oas3/wrap-components/json-schema-string.jsx":287,"core/plugins/oas3/wrap-components/markdown.jsx":2460,"core/plugins/oas3/wrap-components/model.jsx":3499,"core/plugins/oas3/wrap-components/online-validator-badge.js":58,"core/plugins/oas3/wrap-components/version-stamp.jsx":9487,"core/plugins/on-complete/index.js":8560,"core/plugins/request-snippets/fn.js":8223,"core/plugins/request-snippets/index.js":6575,"core/plugins/request-snippets/request-snippets.jsx":4206,"core/plugins/request-snippets/selectors.js":4669,"core/plugins/safe-render/components/error-boundary.jsx":6195,"core/plugins/safe-render/components/fallback.jsx":9403,"core/plugins/safe-render/fn.jsx":6189,"core/plugins/safe-render/index.js":9595,"core/plugins/samples/fn.js":4128,"core/plugins/samples/index.js":8883,"core/plugins/spec/actions.js":7960,"core/plugins/spec/index.js":7038,"core/plugins/spec/reducers.js":32,"core/plugins/spec/selectors.js":3881,"core/plugins/spec/wrap-actions.js":7508,"core/plugins/swagger-js/configs-wrap-actions.js":4852,"core/plugins/swagger-js/index.js":8901,"core/plugins/util/index.js":8525,"core/plugins/view/fn.js":8347,"core/plugins/view/index.js":3420,"core/plugins/view/root-injects.jsx":290};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=5102},2517:e=>{"use strict";e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwcHgiICBoZWlnaHQ9IjIwMHB4IiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiIGNsYXNzPSJsZHMtcm9sbGluZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsiPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIGZpbGw9Im5vbmUiIG5nLWF0dHItc3Ryb2tlPSJ7e2NvbmZpZy5jb2xvcn19IiBuZy1hdHRyLXN0cm9rZS13aWR0aD0ie3tjb25maWcud2lkdGh9fSIgbmctYXR0ci1yPSJ7e2NvbmZpZy5yYWRpdXN9fSIgbmctYXR0ci1zdHJva2UtZGFzaGFycmF5PSJ7e2NvbmZpZy5kYXNoYXJyYXl9fSIgc3Ryb2tlPSIjNTU1NTU1IiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgY2FsY01vZGU9ImxpbmVhciIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCIga2V5VGltZXM9IjA7MSIgZHVyPSIxcyIgYmVnaW49IjBzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlVHJhbnNmb3JtPjwvY2lyY2xlPjwvc3ZnPgo="},5163:e=>{"use strict";e.exports='---\nurl: "https://petstore.swagger.io/v2/swagger.json"\ndom_id: "#swagger-ui"\nvalidatorUrl: "https://validator.swagger.io/validator"\n'},1733:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/array/from")},7104:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/array/is-array")},593:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/bind")},4883:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/concat")},7862:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/entries")},7834:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/every")},9998:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/filter")},3580:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/find")},4235:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/for-each")},2605:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/includes")},8493:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/index-of")},874:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/keys")},3942:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/map")},66:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/reduce")},600:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/slice")},5626:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/some")},9247:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/sort")},3262:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/starts-with")},7390:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/instance/trim")},8344:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/json/stringify")},2611:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/map")},4994:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/object/assign")},7252:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/object/keys")},9968:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/object/values")},9300:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/set-timeout")},9478:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/core-js-stable/url")},4555:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/assertThisInitialized")},6349:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/classCallCheck")},4606:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/createClass")},1771:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/createForOfIteratorHelper")},1885:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/createSuper")},1093:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/defineProperty")},4250:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/extends")},4291:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/inherits")},67:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/objectSpread2")},5579:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/objectWithoutProperties")},8030:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/slicedToArray")},6731:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/toConsumableArray")},6768:e=>{"use strict";e.exports=require("@babel/runtime-corejs3/helpers/typeof")},871:e=>{"use strict";e.exports=require("buffer")},9003:e=>{"use strict";e.exports=require("classnames")},5572:e=>{"use strict";e.exports=require("immutable")},9793:e=>{"use strict";e.exports=require("js-yaml")},1712:e=>{"use strict";e.exports=require("lodash/get")},5716:e=>{"use strict";e.exports=require("lodash/isFunction")},541:e=>{"use strict";e.exports=require("lodash/memoize")},580:e=>{"use strict";e.exports=require("prop-types")},185:e=>{"use strict";e.exports=require("randombytes")},6689:e=>{"use strict";e.exports=require("react")},2807:e=>{"use strict";e.exports=require("react-copy-to-clipboard")},8082:e=>{"use strict";e.exports=require("react-immutable-proptypes")},6695:e=>{"use strict";e.exports=require("redux")},963:e=>{"use strict";e.exports=require("remarkable")},6814:e=>{"use strict";e.exports=require("reselect")},41:e=>{"use strict";e.exports=require("serialize-error")},6765:e=>{"use strict";e.exports=require("swagger-client/es/helpers")},3883:e=>{"use strict";e.exports=require("url-parse")}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";n.d(r,{default:()=>Wr});var e={};n.r(e),n.d(e,{Button:()=>Rn,Col:()=>In,Collapse:()=>Vn,Container:()=>kn,Input:()=>Tn,Link:()=>Mn,Row:()=>qn,Select:()=>On,TextArea:()=>Pn});var t={};n.r(t),n.d(t,{JsonSchemaArrayItemFile:()=>Rr,JsonSchemaArrayItemText:()=>qr,JsonSchemaForm:()=>kr,JsonSchema_array:()=>Ir,JsonSchema_boolean:()=>Pr,JsonSchema_object:()=>Or,JsonSchema_string:()=>Nr});var a=n(6768),o=n.n(a),s=n(4883),l=n.n(s);const i=require("@babel/runtime-corejs3/core-js-stable/instance/last-index-of");var c=n.n(i),u=n(9998),p=n.n(u),d=n(7252),m=n.n(d),h=n(8344),f=n.n(h);const g=require("deep-extend");var v=n.n(g),y=n(1093),E=n.n(y),S=n(6349),b=n.n(S),C=n(4606),x=n.n(C),w=n(593),_=n.n(w),A=n(4994),k=n.n(A),N=n(600),I=n.n(N),q=n(7104),R=n.n(q),P=n(66),T=n.n(P),O=n(3942),M=n.n(O),j=n(6689),V=n.n(j),D=n(6695),L=n(5572),U=n.n(L);const z=require("redux-immutable");var B=n(41);const J=require("lodash/merge");var F=n.n(J),W=n(4966),H=n(7504),K=n(1890),Z=function(e){return e};var G=function(){function e(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b()(this,e),v()(this,{state:{},plugins:[],pluginsOptions:{},system:{configs:{},fn:{},components:{},rootInjects:{},statePlugins:{}},boundSystem:{},toolbox:{}},n),this.getSystem=_()(t=this._getSystem).call(t,this),this.store=ee(Z,(0,L.fromJS)(this.state),this.getSystem),this.buildSystem(!1),this.register(this.plugins)}return x()(e,[{key:"getStore",value:function(){return this.store}},{key:"register",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Y(e,this.getSystem(),this.pluginsOptions);Q(this.system,n),t&&this.buildSystem();var r=X.call(this.system,e,this.getSystem());r&&this.buildSystem()}},{key:"buildSystem",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getStore().dispatch,n=this.getStore().getState;this.boundSystem=k()({},this.getRootInjects(),this.getWrappedAndBoundActions(t),this.getWrappedAndBoundSelectors(n,this.getSystem),this.getStateThunks(n),this.getFn(),this.getConfigs()),e&&this.rebuildReducer()}},{key:"_getSystem",value:function(){return this.boundSystem}},{key:"getRootInjects",value:function(){var e,t,n;return k()({getSystem:this.getSystem,getStore:_()(e=this.getStore).call(e,this),getComponents:_()(t=this.getComponents).call(t,this),getState:this.getStore().getState,getConfigs:_()(n=this._getConfigs).call(n,this),Im:U(),React:V()},this.system.rootInjects||{})}},{key:"_getConfigs",value:function(){return this.system.configs}},{key:"getConfigs",value:function(){return{configs:this.system.configs}}},{key:"setConfigs",value:function(e){this.system.configs=e}},{key:"rebuildReducer",value:function(){var e,t,n,r;this.store.replaceReducer((r=this.system.statePlugins,e=(0,K.Ay)(r,(function(e){return e.reducers})),n=T()(t=m()(e)).call(t,(function(t,n){return t[n]=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new L.Map,n=arguments.length>1?arguments[1]:void 0;if(!e)return t;var r=e[n.type];if(r){var a=$(r)(t,n);return null===a?t:a}return t}}(e[n]),t}),{}),m()(n).length?(0,z.combineReducers)(n):Z))}},{key:"getType",value:function(e){var t=e[0].toUpperCase()+I()(e).call(e,1);return(0,K.Q2)(this.system.statePlugins,(function(n,r){var a=n[e];if(a)return E()({},r+t,a)}))}},{key:"getSelectors",value:function(){return this.getType("selectors")}},{key:"getActions",value:function(){var e=this.getType("actions");return(0,K.Ay)(e,(function(e){return(0,K.Q2)(e,(function(e,t){if((0,K.LQ)(e))return E()({},t,e)}))}))}},{key:"getWrappedAndBoundActions",value:function(e){var t=this,n=this.getBoundActions(e);return(0,K.Ay)(n,(function(e,n){var r=t.system.statePlugins[I()(n).call(n,0,-7)].wrapActions;return r?(0,K.Ay)(e,(function(e,n){var a=r[n];return a?(R()(a)||(a=[a]),T()(a).call(a,(function(e,n){var r=function(){return n(e,t.getSystem()).apply(void 0,arguments)};if(!(0,K.LQ)(r))throw new TypeError("wrapActions needs to return a function that returns a new function (ie the wrapped action)");return $(r)}),e||Function.prototype)):e})):e}))}},{key:"getWrappedAndBoundSelectors",value:function(e,t){var n=this,r=this.getBoundSelectors(e,t);return(0,K.Ay)(r,(function(t,r){var a=[I()(r).call(r,0,-9)],o=n.system.statePlugins[a].wrapSelectors;return o?(0,K.Ay)(t,(function(t,r){var s=o[r];return s?(R()(s)||(s=[s]),T()(s).call(s,(function(t,r){var o=function(){for(var o,s=arguments.length,i=new Array(s),c=0;c2&&void 0!==arguments[2]?arguments[2]:{},a=r.hasLoaded,o=a;return(0,K.Kn)(e)&&!(0,K.kJ)(e)&&"function"==typeof e.afterLoad&&(o=!0,$(e.afterLoad).call(this,t)),(0,K.Wl)(e)?X.call(this,e(t),t,{hasLoaded:o}):(0,K.kJ)(e)?M()(e).call(e,(function(e){return X.call(n,e,t,{hasLoaded:o})})):o}function Q(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!(0,K.Kn)(e))return{};if(!(0,K.Kn)(t))return e;t.wrapComponents&&((0,K.Ay)(t.wrapComponents,(function(n,r){var a=e.components&&e.components[r];a&&R()(a)?(e.components[r]=l()(a).call(a,[n]),delete t.wrapComponents[r]):a&&(e.components[r]=[a,n],delete t.wrapComponents[r])})),m()(t.wrapComponents).length||delete t.wrapComponents);var n=e.statePlugins;if((0,K.Kn)(n))for(var r in n){var a=n[r];if((0,K.Kn)(a)){var o=a.wrapActions,s=a.wrapSelectors;if((0,K.Kn)(o))for(var i in o){var c,u=o[i];if(R()(u)||(u=[u],o[i]=u),t&&t.statePlugins&&t.statePlugins[r]&&t.statePlugins[r].wrapActions&&t.statePlugins[r].wrapActions[i])t.statePlugins[r].wrapActions[i]=l()(c=o[i]).call(c,t.statePlugins[r].wrapActions[i])}if((0,K.Kn)(s))for(var p in s){var d,h=s[p];if(R()(h)||(h=[h],s[p]=h),t&&t.statePlugins&&t.statePlugins[r]&&t.statePlugins[r].wrapSelectors&&t.statePlugins[r].wrapSelectors[p])t.statePlugins[r].wrapSelectors[p]=l()(d=s[p]).call(d,t.statePlugins[r].wrapSelectors[p])}}}return v()(e,t)}function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.logErrors,r=void 0===n||n;return"function"!=typeof e?e:function(){try{for(var t,n=arguments.length,a=new Array(n),o=0;o=0&&(void 0===t.allowTryItOut?t.specSelectors.allowTryItOutFor(t.path,t.method):t.allowTryItOut),v=r.getIn(["operation","security"])||t.specSelectors.security();return{operationId:m,isDeepLinkingEnabled:f,showSummary:d,displayOperationId:c,displayRequestDuration:u,allowTryItOut:g,security:v,isAuthorized:t.authSelectors.isAuthorized(v),isShown:a.isShown(h,"full"===s),jumpToKey:l()(n="paths.".concat(t.path,".")).call(n,t.method),response:t.specSelectors.responseFor(t.path,t.method),request:t.specSelectors.requestFor(t.path,t.method)}}},{key:"componentDidMount",value:function(){var e=this.props.isShown,t=this.getResolvedSubtree();e&&void 0===t&&this.requestResolvedSubtree()}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=e.response,n=e.isShown,r=this.getResolvedSubtree();t!==this.props.response&&this.setState({executeInProgress:!1}),n&&void 0===r&&this.requestResolvedSubtree()}},{key:"render",value:function(){var e=this.props,t=e.op,n=e.tag,r=e.path,a=e.method,o=e.security,s=e.isAuthorized,l=e.operationId,i=e.showSummary,c=e.isShown,u=e.jumpToKey,p=e.allowTryItOut,d=e.response,m=e.request,h=e.displayOperationId,f=e.displayRequestDuration,g=e.isDeepLinkingEnabled,v=e.specPath,y=e.specSelectors,E=e.specActions,S=e.getComponent,b=e.getConfigs,C=e.layoutSelectors,x=e.layoutActions,w=e.authActions,_=e.authSelectors,A=e.oas3Actions,k=e.oas3Selectors,N=e.fn,I=S("operation"),q=this.getResolvedSubtree()||(0,L.Map)(),R=(0,L.fromJS)({op:q,tag:n,path:r,summary:t.getIn(["operation","summary"])||"",deprecated:q.get("deprecated")||t.getIn(["operation","deprecated"])||!1,method:a,security:o,isAuthorized:s,operationId:l,originalOperationId:q.getIn(["operation","__originalOperationId"]),showSummary:i,isShown:c,jumpToKey:u,allowTryItOut:p,request:m,displayOperationId:h,displayRequestDuration:f,isDeepLinkingEnabled:g,executeInProgress:this.state.executeInProgress,tryItOutEnabled:this.state.tryItOutEnabled});return V().createElement(I,{operation:R,response:d,request:m,isShown:c,toggleShown:this.toggleShown,onTryoutClick:this.onTryoutClick,onCancelClick:this.onCancelClick,onExecute:this.onExecute,specPath:v,specActions:E,specSelectors:y,oas3Actions:A,oas3Selectors:k,layoutActions:x,layoutSelectors:C,authActions:w,authSelectors:_,getComponent:S,getConfigs:b,fn:N})}}]),n}(j.PureComponent);E()(Ae,"defaultProps",{showSummary:!0,response:null,allowTryItOut:!0,displayOperationId:!1,displayRequestDuration:!1});var ke=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"getLayout",value:function(){var e=this.props,t=e.getComponent,n=e.layoutSelectors.current(),r=t(n,!0);return r||function(){return V().createElement("h1",null,' No layout defined for "',n,'" ')}}},{key:"render",value:function(){var e=this.getLayout();return V().createElement(e,null)}}]),n}(V().Component);ke.defaultProps={};var Ne=function(e){Se()(n,e);var t=Ce()(n);function n(){var e,r;b()(this,n);for(var a=arguments.length,o=new Array(a),s=0;s1&&void 0!==arguments[1]?arguments[1]:{},n=t.isSyntheticChange,a=void 0!==n&&n;"function"==typeof r.props.onSelect&&r.props.onSelect(e,{isSyntheticChange:a})})),E()(ye()(r),"_onDomSelect",(function(e){if("function"==typeof r.props.onSelect){var t=e.target.selectedOptions[0].getAttribute("value");r._onSelect(t,{isSyntheticChange:!1})}})),E()(ye()(r),"getCurrentExample",(function(){var e=r.props,t=e.examples,n=e.currentExampleKey,a=t.get(n),o=t.keySeq().first(),s=t.get(o);return a||s||Le()({})})),r}return x()(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.onSelect,n=e.examples;if("function"==typeof t){var r=n.first(),a=n.keyOf(r);this._onSelect(a,{isSyntheticChange:!0})}}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=e.currentExampleKey,n=e.examples;if(n!==this.props.examples&&!n.has(t)){var r=n.first(),a=n.keyOf(r);this._onSelect(a,{isSyntheticChange:!0})}}},{key:"render",value:function(){var e=this.props,t=e.examples,n=e.currentExampleKey,r=e.isValueModified,a=e.isModifiedValueAvailable,o=e.showLabels;return V().createElement("div",{className:"examples-select"},o?V().createElement("span",{className:"examples-select__section-label"},"Examples: "):null,V().createElement("select",{className:"examples-select-element",onChange:this._onDomSelect,value:a&&r?"__MODIFIED__VALUE__":n||""},a?V().createElement("option",{value:"__MODIFIED__VALUE__"},"[Modified value]"):null,M()(t).call(t,(function(e,t){return V().createElement("option",{key:t,value:t},e.get("summary")||t)})).valueSeq()))}}]),n}(V().PureComponent);E()(Ue,"defaultProps",{examples:U().Map({}),onSelect:function(){for(var e,t,n=arguments.length,r=new Array(n),a=0;a1&&void 0!==arguments[1]?arguments[1]:{},n=t.isSyntheticChange,a=r.props,o=a.onSelect,s=a.updateValue,i=a.currentUserInputValue,c=a.userHasEditedBody,u=r._getStateForCurrentNamespace(),p=u.lastUserEditedValue,d=r._getValueForExample(e);if("__MODIFIED__VALUE__"===e)return s(ze(p)),r._setStateForCurrentNamespace({isModifiedValueSelected:!0});if("function"==typeof o){for(var m,h=arguments.length,f=new Array(h>2?h-2:0),g=2;g-1){var u;a.setState({scopes:p()(u=a.state.scopes).call(u,(function(e){return e!==s}))})}})),E()(ye()(a),"onInputChange",(function(e){var t=e.target,n=t.dataset.name,r=t.value,o=E()({},n,r);a.setState(o)})),E()(ye()(a),"selectScopes",(function(e){var t;e.target.dataset.all?a.setState({scopes:Fe()(He()(t=a.props.schema.get("allowedScopes")||a.props.schema.get("scopes")).call(t))}):a.setState({scopes:[]})})),E()(ye()(a),"logout",(function(e){e.preventDefault();var t=a.props,n=t.authActions,r=t.errActions,o=t.name;r.clear({authId:o,type:"auth",source:"auth"}),n.logoutWithPersistOption([o])}));var o=a.props,s=o.name,i=o.schema,c=o.authorized,u=o.authSelectors,d=c&&c.get(s),m=u.getConfigs()||{},h=d&&d.get("username")||"",f=d&&d.get("clientId")||m.clientId||"",g=d&&d.get("clientSecret")||m.clientSecret||"",v=d&&d.get("passwordType")||"basic",y=d&&d.get("scopes")||m.scopes||[];return"string"==typeof y&&(y=y.split(m.scopeSeparator||" ")),a.state={appName:m.appName,name:s,schema:i,scopes:y,clientId:f,clientSecret:g,username:h,password:"",passwordType:v},a}return x()(n,[{key:"render",value:function(){var e,t,n=this,r=this.props,a=r.schema,o=r.getComponent,s=r.authSelectors,i=r.errSelectors,c=r.name,u=r.specSelectors,d=o("Input"),m=o("Row"),h=o("Col"),f=o("Button"),g=o("authError"),v=o("JumpToPath",!0),y=o("Markdown",!0),E=o("InitializedInput"),S=u.isOAS3,b=S()?a.get("openIdConnectUrl"):null,C="implicit",x="password",w=S()?b?"authorization_code":"authorizationCode":"accessCode",_=S()?b?"client_credentials":"clientCredentials":"application",A=!!(s.getConfigs()||{}).usePkceWithAuthorizationCodeGrant,k=a.get("flow"),N=k===w&&A?k+" with PKCE":k,I=a.get("allowedScopes")||a.get("scopes"),q=!!s.authorized().get(c),R=p()(e=i.allErrors()).call(e,(function(e){return e.get("authId")===c})),P=!p()(R).call(R,(function(e){return"validation"===e.get("source")})).size,T=a.get("description");return V().createElement("div",null,V().createElement("h4",null,c," (OAuth2, ",N,") ",V().createElement(v,{path:["securityDefinitions",c]})),this.state.appName?V().createElement("h5",null,"Application: ",this.state.appName," "):null,T&&V().createElement(y,{source:a.get("description")}),q&&V().createElement("h6",null,"Authorized"),b&&V().createElement("p",null,"OpenID Connect URL: ",V().createElement("code",null,b)),(k===C||k===w)&&V().createElement("p",null,"Authorization URL: ",V().createElement("code",null,a.get("authorizationUrl"))),(k===x||k===w||k===_)&&V().createElement("p",null,"Token URL:",V().createElement("code",null," ",a.get("tokenUrl"))),V().createElement("p",{className:"flow"},"Flow: ",V().createElement("code",null,N)),k!==x?null:V().createElement(m,null,V().createElement(m,null,V().createElement("label",{htmlFor:"oauth_username"},"username:"),q?V().createElement("code",null," ",this.state.username," "):V().createElement(h,{tablet:10,desktop:10},V().createElement("input",{id:"oauth_username",type:"text","data-name":"username",onChange:this.onInputChange,autoFocus:!0}))),V().createElement(m,null,V().createElement("label",{htmlFor:"oauth_password"},"password:"),q?V().createElement("code",null," ****** "):V().createElement(h,{tablet:10,desktop:10},V().createElement("input",{id:"oauth_password",type:"password","data-name":"password",onChange:this.onInputChange}))),V().createElement(m,null,V().createElement("label",{htmlFor:"password_type"},"Client credentials location:"),q?V().createElement("code",null," ",this.state.passwordType," "):V().createElement(h,{tablet:10,desktop:10},V().createElement("select",{id:"password_type","data-name":"passwordType",onChange:this.onInputChange},V().createElement("option",{value:"basic"},"Authorization header"),V().createElement("option",{value:"request-body"},"Request body"))))),(k===_||k===C||k===w||k===x)&&(!q||q&&this.state.clientId)&&V().createElement(m,null,V().createElement("label",{htmlFor:"client_id"},"client_id:"),q?V().createElement("code",null," ****** "):V().createElement(h,{tablet:10,desktop:10},V().createElement(E,{id:"client_id",type:"text",required:k===x,initialValue:this.state.clientId,"data-name":"clientId",onChange:this.onInputChange}))),(k===_||k===w||k===x)&&!A&&V().createElement(m,null,V().createElement("label",{htmlFor:"client_secret"},"client_secret:"),q?V().createElement("code",null," ****** "):V().createElement(h,{tablet:10,desktop:10},V().createElement(E,{id:"client_secret",initialValue:this.state.clientSecret,type:"password","data-name":"clientSecret",onChange:this.onInputChange}))),!q&&I&&I.size?V().createElement("div",{className:"scopes"},V().createElement("h2",null,"Scopes:",V().createElement("a",{onClick:this.selectScopes,"data-all":!0},"select all"),V().createElement("a",{onClick:this.selectScopes},"select none")),M()(I).call(I,(function(e,t){var r,a,o,s,i;return V().createElement(m,{key:t},V().createElement("div",{className:"checkbox"},V().createElement(d,{"data-value":t,id:l()(r=l()(a="".concat(t,"-")).call(a,k,"-checkbox-")).call(r,n.state.name),disabled:q,checked:Ze()(o=n.state.scopes).call(o,t),type:"checkbox",onChange:n.onScopeChange}),V().createElement("label",{htmlFor:l()(s=l()(i="".concat(t,"-")).call(i,k,"-checkbox-")).call(s,n.state.name)},V().createElement("span",{className:"item"}),V().createElement("div",{className:"text"},V().createElement("p",{className:"name"},t),V().createElement("p",{className:"description"},e)))))})).toArray()):null,M()(t=R.valueSeq()).call(t,(function(e,t){return V().createElement(g,{error:e,key:t})})),V().createElement("div",{className:"auth-btn-wrapper"},P&&(q?V().createElement(f,{className:"btn modal-btn auth authorize",onClick:this.logout},"Logout"):V().createElement(f,{className:"btn modal-btn auth authorize",onClick:this.authorize},"Authorize")),V().createElement(f,{className:"btn modal-btn auth btn-done",onClick:this.close},"Close")))}}]),n}(V().Component),Qe=function(e){Se()(n,e);var t=Ce()(n);function n(){var e,r;b()(this,n);for(var a=arguments.length,o=new Array(a),s=0;s2&&void 0!==arguments[2]?arguments[2]:{},r=n.selectedServer,a=void 0===r?"":r;if(e){if(it(e))return e;var o=ct(a,t);return it(o)?new(lt())(e,o).href:new(lt())(e,window.location.href).href}}function pt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.selectedServer,a=void 0===r?"":r;try{return ut(e,t,{selectedServer:a})}catch(e){return}}var dt=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e,t=this.props,n=t.tagObj,r=t.tag,a=t.children,o=t.oas3Selectors,s=t.layoutSelectors,l=t.layoutActions,i=t.getConfigs,c=t.getComponent,u=t.specUrl,p=i(),d=p.docExpansion,m=p.deepLinking,h=m&&"false"!==m,f=c("Collapse"),g=c("Markdown",!0),v=c("DeepLink"),y=c("Link"),E=n.getIn(["tagDetails","description"],null),S=n.getIn(["tagDetails","externalDocs","description"]),b=n.getIn(["tagDetails","externalDocs","url"]);e=(0,K.Wl)(o)&&(0,K.Wl)(o.selectedServer)?pt(b,u,{selectedServer:o.selectedServer()}):b;var C=["operations-tag",r],x=s.isShown(C,"full"===d||"list"===d);return V().createElement("div",{className:x?"opblock-tag-section is-open":"opblock-tag-section"},V().createElement("h3",{onClick:function(){return l.show(C,!x)},className:E?"opblock-tag":"opblock-tag no-desc",id:M()(C).call(C,(function(e){return(0,K.J6)(e)})).join("-"),"data-tag":r,"data-is-open":x},V().createElement(v,{enabled:h,isShown:x,path:(0,K.oJ)(r),text:r}),E?V().createElement("small",null,V().createElement(g,{source:E})):V().createElement("small",null),S?V().createElement("div",{className:"info__externaldocs"},V().createElement("small",null,S,e?": ":null,e?V().createElement(y,{href:(0,K.Nm)(e),onClick:function(e){return e.stopPropagation()},target:"_blank"},e):null)):null,V().createElement("button",{"aria-expanded":x,className:"expand-operation",title:x?"Collapse operation":"Expand operation",onClick:function(){return l.show(C,!x)}},V().createElement("svg",{className:"arrow",width:"20",height:"20","aria-hidden":"true",focusable:"false"},V().createElement("use",{href:x?"#large-arrow-up":"#large-arrow-down",xlinkHref:x?"#large-arrow-up":"#large-arrow-down"})))),V().createElement(f,{isOpened:x},a))}}]),n}(V().Component);E()(dt,"defaultProps",{tagObj:U().fromJS({}),tag:""});var mt=function(e){Se()(r,e);var t=Ce()(r);function r(){return b()(this,r),t.apply(this,arguments)}return x()(r,[{key:"render",value:function(){var e=this.props,t=e.specPath,r=e.response,a=e.request,o=e.toggleShown,s=e.onTryoutClick,l=e.onCancelClick,i=e.onExecute,c=e.fn,u=e.getComponent,p=e.getConfigs,d=e.specActions,m=e.specSelectors,h=e.authActions,f=e.authSelectors,g=e.oas3Actions,v=e.oas3Selectors,y=this.props.operation,E=y.toJS(),S=E.deprecated,b=E.isShown,C=E.path,x=E.method,w=E.op,_=E.tag,A=E.operationId,k=E.allowTryItOut,N=E.displayRequestDuration,I=E.tryItOutEnabled,q=E.executeInProgress,R=w.description,P=w.externalDocs,T=w.schemes,O=P?pt(P.url,m.url(),{selectedServer:v.selectedServer()}):"",M=y.getIn(["op"]),j=M.get("responses"),D=(0,K.gp)(M,["parameters"]),L=m.operationScheme(C,x),U=["operations",_,A],z=(0,K.nX)(M),B=u("responses"),J=u("parameters"),F=u("execute"),W=u("clear"),H=u("Collapse"),Z=u("Markdown",!0),G=u("schemes"),Y=u("OperationServers"),X=u("OperationExt"),Q=u("OperationSummary"),$=u("Link"),ee=p().showExtensions;if(j&&r&&r.size>0){var te=!j.get(String(r.get("status")))&&!j.get("default");r=r.set("notDocumented",te)}var ne=[C,x];return V().createElement("div",{className:S?"opblock opblock-deprecated":b?"opblock opblock-".concat(x," is-open"):"opblock opblock-".concat(x),id:(0,K.J6)(U.join("-"))},V().createElement(Q,{operationProps:y,isShown:b,toggleShown:o,getComponent:u,authActions:h,authSelectors:f,specPath:t}),V().createElement(H,{isOpened:b},V().createElement("div",{className:"opblock-body"},M&&M.size||null===M?null:V().createElement("img",{height:"32px",width:"32px",src:n(2517),className:"opblock-loading-animation"}),S&&V().createElement("h4",{className:"opblock-title_normal"}," Warning: Deprecated"),R&&V().createElement("div",{className:"opblock-description-wrapper"},V().createElement("div",{className:"opblock-description"},V().createElement(Z,{source:R}))),O?V().createElement("div",{className:"opblock-external-docs-wrapper"},V().createElement("h4",{className:"opblock-title_normal"},"Find more details"),V().createElement("div",{className:"opblock-external-docs"},V().createElement("span",{className:"opblock-external-docs__description"},V().createElement(Z,{source:P.description})),V().createElement($,{target:"_blank",className:"opblock-external-docs__link",href:(0,K.Nm)(O)},O))):null,M&&M.size?V().createElement(J,{parameters:D,specPath:t.push("parameters"),operation:M,onChangeKey:ne,onTryoutClick:s,onCancelClick:l,tryItOutEnabled:I,allowTryItOut:k,fn:c,getComponent:u,specActions:d,specSelectors:m,pathMethod:[C,x],getConfigs:p,oas3Actions:g,oas3Selectors:v}):null,I?V().createElement(Y,{getComponent:u,path:C,method:x,operationServers:M.get("servers"),pathServers:m.paths().getIn([C,"servers"]),getSelectedServer:v.selectedServer,setSelectedServer:g.setSelectedServer,setServerVariableValue:g.setServerVariableValue,getServerVariable:v.serverVariableValue,getEffectiveServerValue:v.serverEffectiveValue}):null,I&&k&&T&&T.size?V().createElement("div",{className:"opblock-schemes"},V().createElement(G,{schemes:T,path:C,method:x,specActions:d,currentScheme:L})):null,V().createElement("div",{className:I&&r&&k?"btn-group":"execute-wrapper"},I&&k?V().createElement(F,{operation:M,specActions:d,specSelectors:m,oas3Selectors:v,oas3Actions:g,path:C,method:x,onExecute:i,disabled:q}):null,I&&r&&k?V().createElement(W,{specActions:d,path:C,method:x}):null),q?V().createElement("div",{className:"loading-container"},V().createElement("div",{className:"loading"})):null,j?V().createElement(B,{responses:j,request:a,tryItOutResponse:r,getComponent:u,getConfigs:p,specSelectors:m,oas3Actions:g,oas3Selectors:v,specActions:d,produces:m.producesOptionsFor([C,x]),producesValue:m.currentProducesFor([C,x]),specPath:t.push("responses"),path:C,method:x,displayRequestDuration:N,fn:c}):null,ee&&z.size?V().createElement(X,{extensions:z,getComponent:u}):null)))}}]),r}(j.PureComponent);E()(mt,"defaultProps",{operation:null,response:null,request:null,specPath:(0,L.List)(),summary:""});const ht=require("lodash/toString");var ft=n.n(ht),gt=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e,t=this.props,n=t.isShown,r=t.toggleShown,a=t.getComponent,o=t.authActions,s=t.authSelectors,i=t.operationProps,c=t.specPath,u=i.toJS(),p=u.summary,d=u.isAuthorized,m=u.method,h=u.op,f=u.showSummary,g=u.path,v=u.operationId,y=u.originalOperationId,E=u.displayOperationId,S=h.summary,b=i.get("security"),C=a("authorizeOperationBtn"),x=a("OperationSummaryMethod"),w=a("OperationSummaryPath"),_=a("JumpToPath",!0),A=b&&!!b.count(),k=A&&1===b.size&&b.first().isEmpty(),N=!A||k;return V().createElement("div",{className:"opblock-summary opblock-summary-".concat(m)},V().createElement("button",{"aria-label":l()(e="".concat(m," ")).call(e,g.replace(/\//g,"​/")),"aria-expanded":n,className:"opblock-summary-control",onClick:r},V().createElement(x,{method:m}),V().createElement(w,{getComponent:a,operationProps:i,specPath:c}),f?V().createElement("div",{className:"opblock-summary-description"},ft()(S||p)):null,E&&(y||v)?V().createElement("span",{className:"opblock-summary-operation-id"},y||v):null,V().createElement("svg",{className:"arrow",width:"20",height:"20","aria-hidden":"true",focusable:"false"},V().createElement("use",{href:n?"#large-arrow-up":"#large-arrow-down",xlinkHref:n?"#large-arrow-up":"#large-arrow-down"}))),N?null:V().createElement(C,{isAuthorized:d,onClick:function(){var e=s.definitionsForRequirements(b);o.showDefinitions(e)}}),V().createElement(_,{path:c}))}}]),n}(j.PureComponent);E()(gt,"defaultProps",{operationProps:null,specPath:(0,L.List)(),summary:""});var vt=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e=this.props.method;return V().createElement("span",{className:"opblock-summary-method"},e.toUpperCase())}}]),n}(j.PureComponent);E()(vt,"defaultProps",{operationProps:null});const yt=require("@babel/runtime-corejs3/core-js-stable/instance/splice");var Et=n.n(yt),St=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){for(var e,t=this.props,n=t.getComponent,r=t.operationProps.toJS(),a=r.deprecated,o=r.isShown,s=r.path,i=r.tag,c=r.operationId,u=r.isDeepLinkingEnabled,p=s.split(/(?=\/)/g),d=1;da&&(0===o&&n<0||a+o>=r&&n>0)&&e.preventDefault()};return V().createElement("div",{className:"highlight-code",ref:u},a?V().createElement("div",{className:"download-contents",onClick:function(){Mt()(t,n)}},"Download"):null,s&&V().createElement("div",{className:"copy-to-clipboard"},V().createElement(jt.CopyToClipboard,{text:t},V().createElement("button",null))),c?V().createElement(It.d3,{language:l,className:Nt()(r,"microlight"),style:(0,It.C2)(Rt()(i,"syntaxHighlight.theme","agate"))},t):V().createElement("pre",{className:Nt()(r,"microlight")},t))};Vt.defaultProps={fileName:"response.txt"};const Dt=Vt;var Lt=function(e){Se()(n,e);var t=Ce()(n);function n(){var e,r;b()(this,n);for(var a=arguments.length,o=new Array(a),s=0;s1&&void 0!==arguments[1]?arguments[1]:"_";return e.replace(/[^\w-]/g,t)}(l()(e="".concat(g)).call(e,f,"_responses")),A="".concat(_,"_select");return V().createElement("div",{className:"responses-wrapper"},V().createElement("div",{className:"opblock-section-header"},V().createElement("h4",null,"Responses"),u.isOAS3()?null:V().createElement("label",{htmlFor:A},V().createElement("span",null,"Response content type"),V().createElement(S,{value:d,ariaControls:_,ariaLabel:"Response content type",className:"execute-content-type",contentTypes:x,controlId:A,onChange:this.onChangeProducesWrapper}))),V().createElement("div",{className:"responses-inner"},s?V().createElement("div",null,V().createElement(b,{response:s,getComponent:i,getConfigs:c,specSelectors:u,path:this.props.path,method:this.props.method,displayRequestDuration:m}),V().createElement("h4",null,"Responses")):null,V().createElement("table",{"aria-live":"polite",className:"responses-table",id:_,role:"region"},V().createElement("thead",null,V().createElement("tr",{className:"responses-header"},V().createElement("td",{className:"col_header response-col_status"},"Code"),V().createElement("td",{className:"col_header response-col_description"},"Description"),u.isOAS3()?V().createElement("td",{className:"col col_header response-col_links"},"Links"):null)),V().createElement("tbody",null,M()(t=o.entrySeq()).call(t,(function(e){var t=Ct()(e,2),n=t[0],a=t[1],o=s&&s.get("status")==n?"response_current":"";return V().createElement(C,{key:n,path:f,method:g,specPath:h.push(n),isDefault:E===n,fn:p,className:o,code:n,response:a,specSelectors:u,controlsAcceptHeader:a===w,onContentTypeChange:r.onResponseContentTypeChange,contentType:d,getConfigs:c,activeExamplesKey:v.activeExamplesMember(f,g,"responses",n),oas3Actions:y,getComponent:i})})).toArray()))))}}]),n}(V().Component);E()(Lt,"defaultProps",{tryItOutResponse:null,produces:(0,L.fromJS)(["application/json"]),displayRequestDuration:!1});var Ut=n(67),zt=n.n(Ut);const Bt=require("@babel/runtime-corejs3/core-js-stable/instance/values");var Jt=n.n(Bt),Ft=n(2518),Wt=function(e){Se()(n,e);var t=Ce()(n);function n(e,r){var a;return b()(this,n),a=t.call(this,e,r),E()(ye()(a),"_onContentTypeChange",(function(e){var t=a.props,n=t.onContentTypeChange,r=t.controlsAcceptHeader;a.setState({responseContentType:e}),n({value:e,controlsAcceptHeader:r})})),E()(ye()(a),"getTargetExamplesKey",(function(){var e=a.props,t=e.response,n=e.contentType,r=e.activeExamplesKey,o=a.state.responseContentType||n,s=t.getIn(["content",o],(0,L.Map)({})).get("examples",null).keySeq().first();return r||s})),a.state={responseContentType:""},a}return x()(n,[{key:"render",value:function(){var e,t,n,r,a,o=this.props,s=o.path,i=o.method,c=o.code,u=o.response,p=o.className,d=o.specPath,m=o.fn,h=o.getComponent,f=o.getConfigs,g=o.specSelectors,v=o.contentType,y=o.controlsAcceptHeader,E=o.oas3Actions,S=m.inferSchema,b=g.isOAS3(),C=f().showExtensions,x=C?(0,K.nX)(u):null,w=u.get("headers"),_=u.get("links"),A=h("ResponseExtension"),k=h("headers"),N=h("highlightCode"),I=h("modelExample"),q=h("Markdown",!0),R=h("operationLink"),P=h("contentType"),T=h("ExamplesSelect"),O=h("Example"),j=this.state.responseContentType||v,D=u.getIn(["content",j],(0,L.Map)({})),U=D.get("examples",null);if(b){var z=D.get("schema");n=z?S(z.toJS()):null,r=z?(0,L.List)(["content",this.state.responseContentType,"schema"]):d}else n=u.get("schema"),r=u.has("schema")?d.push("schema"):d;var B,J=!1,F={includeReadOnly:!0};if(b){var W;if(B=null===(W=D.get("schema"))||void 0===W?void 0:W.toJS(),U){var H=this.getTargetExamplesKey(),Z=function(e){return e.get("value")};void 0===(a=Z(U.get(H,(0,L.Map)({}))))&&(a=Z(Jt()(U).call(U).next().value)),J=!0}else void 0!==D.get("example")&&(a=D.get("example"),J=!0)}else{B=n,F=zt()(zt()({},F),{},{includeWriteOnly:!0});var G=u.getIn(["examples",j]);G&&(a=G,J=!0)}var Y=function(e,t,n){if(null!=e){var r=null;return(0,Ft.O)(e)&&(r="json"),V().createElement("div",null,V().createElement(t,{className:"example",getConfigs:n,language:r,value:(0,K.Pz)(e)}))}return null}((0,K.xi)(B,j,F,J?a:void 0),N,f);return V().createElement("tr",{className:"response "+(p||""),"data-code":c},V().createElement("td",{className:"response-col_status"},c),V().createElement("td",{className:"response-col_description"},V().createElement("div",{className:"response-col_description__inner"},V().createElement(q,{source:u.get("description")})),C&&x.size?M()(e=x.entrySeq()).call(e,(function(e){var t,n=Ct()(e,2),r=n[0],a=n[1];return V().createElement(A,{key:l()(t="".concat(r,"-")).call(t,a),xKey:r,xVal:a})})):null,b&&u.get("content")?V().createElement("section",{className:"response-controls"},V().createElement("div",{className:Nt()("response-control-media-type",{"response-control-media-type--accept-controller":y})},V().createElement("small",{className:"response-control-media-type__title"},"Media type"),V().createElement(P,{value:this.state.responseContentType,contentTypes:u.get("content")?u.get("content").keySeq():(0,L.Seq)(),onChange:this._onContentTypeChange,ariaLabel:"Media Type"}),y?V().createElement("small",{className:"response-control-media-type__accept-message"},"Controls ",V().createElement("code",null,"Accept")," header."):null),U?V().createElement("div",{className:"response-control-examples"},V().createElement("small",{className:"response-control-examples__title"},"Examples"),V().createElement(T,{examples:U,currentExampleKey:this.getTargetExamplesKey(),onSelect:function(e){return E.setActiveExamplesMember({name:e,pathMethod:[s,i],contextType:"responses",contextName:c})},showLabels:!1})):null):null,Y||n?V().createElement(I,{specPath:r,getComponent:h,getConfigs:f,specSelectors:g,schema:(0,K.oG)(n),example:Y,includeReadOnly:!0}):null,b&&U?V().createElement(O,{example:U.get(this.getTargetExamplesKey(),(0,L.Map)({})),getComponent:h,getConfigs:f,omitValue:!0}):null,w?V().createElement(k,{headers:w,getComponent:h}):null),b?V().createElement("td",{className:"response-col_links"},_?M()(t=_.toSeq().entrySeq()).call(t,(function(e){var t=Ct()(e,2),n=t[0],r=t[1];return V().createElement(R,{key:n,name:n,link:r,getComponent:h})})):V().createElement("i",null,"No links")):null)}}]),n}(V().Component);E()(Wt,"defaultProps",{response:(0,L.fromJS)({}),onContentTypeChange:function(){}});const Ht=function(e){var t=e.xKey,n=e.xVal;return V().createElement("div",{className:"response__extension"},t,": ",String(n))},Kt=require("xml-but-prettier");var Zt=n.n(Kt);const Gt=require("lodash/toLower");var Yt=n.n(Gt),Xt=function(e){Se()(n,e);var t=Ce()(n);function n(){var e,r;b()(this,n);for(var a=arguments.length,o=new Array(a),s=0;s0?p?V().createElement("div",null,V().createElement("p",{className:"i"},"Unrecognized response type; displaying content as text."),V().createElement(d,{downloadable:!0,fileName:"".concat(m,".txt"),value:p,getConfigs:i,canCopy:!0})):V().createElement("p",{className:"i"},"Unrecognized response type; unable to display."):null;return t?V().createElement("div",null,V().createElement("h5",null,"Response body"),t):null}}]),n}(V().PureComponent),Qt=n(6731),$t=n.n(Qt),en=n(9968),tn=n.n(en),nn=function(e){Se()(n,e);var t=Ce()(n);function n(e){var r;return b()(this,n),r=t.call(this,e),E()(ye()(r),"onChange",(function(e,t,n){var a=r.props;(0,a.specActions.changeParamByIdentity)(a.onChangeKey,e,t,n)})),E()(ye()(r),"onChangeConsumesWrapper",(function(e){var t=r.props;(0,t.specActions.changeConsumesValue)(t.onChangeKey,e)})),E()(ye()(r),"toggleTab",(function(e){return"parameters"===e?r.setState({parametersVisible:!0,callbackVisible:!1}):"callbacks"===e?r.setState({callbackVisible:!0,parametersVisible:!1}):void 0})),E()(ye()(r),"onChangeMediaType",(function(e){var t=e.value,n=e.pathMethod,a=r.props,o=a.specActions,s=a.oas3Selectors,l=a.oas3Actions,i=s.hasUserEditedBody.apply(s,$t()(n)),c=s.shouldRetainRequestBodyValue.apply(s,$t()(n));l.setRequestContentType({value:t,pathMethod:n}),l.initRequestBodyValidateError({pathMethod:n}),i||(c||l.setRequestBodyValue({value:void 0,pathMethod:n}),o.clearResponse.apply(o,$t()(n)),o.clearRequest.apply(o,$t()(n)),o.clearValidateParams(n))})),r.state={callbackVisible:!1,parametersVisible:!0},r}return x()(n,[{key:"render",value:function(){var e,t,n=this,r=this.props,a=r.onTryoutClick,o=r.parameters,s=r.allowTryItOut,i=r.tryItOutEnabled,c=r.specPath,u=r.fn,p=r.getComponent,d=r.getConfigs,m=r.specSelectors,h=r.specActions,f=r.pathMethod,g=r.oas3Actions,v=r.oas3Selectors,y=r.operation,E=p("parameterRow"),S=p("TryItOutButton"),b=p("contentType"),C=p("Callbacks",!0),x=p("RequestBody",!0),w=i&&s,_=m.isOAS3(),A=y.get("requestBody"),k=T()(e=tn()(T()(o).call(o,(function(e,t){var n,r=t.get("in");return null!==(n=e[r])&&void 0!==n||(e[r]=[]),e[r].push(t),e}),{}))).call(e,(function(e,t){return l()(e).call(e,t)}),[]);return V().createElement("div",{className:"opblock-section"},V().createElement("div",{className:"opblock-section-header"},_?V().createElement("div",{className:"tab-header"},V().createElement("div",{onClick:function(){return n.toggleTab("parameters")},className:"tab-item ".concat(this.state.parametersVisible&&"active")},V().createElement("h4",{className:"opblock-title"},V().createElement("span",null,"Parameters"))),y.get("callbacks")?V().createElement("div",{onClick:function(){return n.toggleTab("callbacks")},className:"tab-item ".concat(this.state.callbackVisible&&"active")},V().createElement("h4",{className:"opblock-title"},V().createElement("span",null,"Callbacks"))):null):V().createElement("div",{className:"tab-header"},V().createElement("h4",{className:"opblock-title"},"Parameters")),s?V().createElement(S,{isOAS3:m.isOAS3(),hasUserEditedBody:v.hasUserEditedBody.apply(v,$t()(f)),enabled:i,onCancelClick:this.props.onCancelClick,onTryoutClick:a,onResetClick:function(){return g.setRequestBodyValue({value:void 0,pathMethod:f})}}):null),this.state.parametersVisible?V().createElement("div",{className:"parameters-container"},k.length?V().createElement("div",{className:"table-container"},V().createElement("table",{className:"parameters"},V().createElement("thead",null,V().createElement("tr",null,V().createElement("th",{className:"col_header parameters-col_name"},"Name"),V().createElement("th",{className:"col_header parameters-col_description"},"Description"))),V().createElement("tbody",null,M()(k).call(k,(function(e,t){var r;return V().createElement(E,{fn:u,specPath:c.push(t.toString()),getComponent:p,getConfigs:d,rawParam:e,param:m.parameterWithMetaByIdentity(f,e),key:l()(r="".concat(e.get("in"),".")).call(r,e.get("name")),onChange:n.onChange,onChangeConsumes:n.onChangeConsumesWrapper,specSelectors:m,specActions:h,oas3Actions:g,oas3Selectors:v,pathMethod:f,isExecute:w})}))))):V().createElement("div",{className:"opblock-description-wrapper"},V().createElement("p",null,"No parameters"))):null,this.state.callbackVisible?V().createElement("div",{className:"callbacks-container opblock-description-wrapper"},V().createElement(C,{callbacks:(0,L.Map)(y.get("callbacks")),specPath:I()(c).call(c,0,-1).push("callbacks")})):null,_&&A&&this.state.parametersVisible&&V().createElement("div",{className:"opblock-section opblock-section-request-body"},V().createElement("div",{className:"opblock-section-header"},V().createElement("h4",{className:"opblock-title parameter__name ".concat(A.get("required")&&"required")},"Request body"),V().createElement("label",null,V().createElement(b,{value:v.requestContentType.apply(v,$t()(f)),contentTypes:A.get("content",(0,L.List)()).keySeq(),onChange:function(e){n.onChangeMediaType({value:e,pathMethod:f})},className:"body-param-content-type",ariaLabel:"Request content type"}))),V().createElement("div",{className:"opblock-description-wrapper"},V().createElement(x,{setRetainRequestBodyValueFlag:function(e){return g.setRetainRequestBodyValueFlag({value:e,pathMethod:f})},userHasEditedBody:v.hasUserEditedBody.apply(v,$t()(f)),specPath:I()(c).call(c,0,-1).push("requestBody"),requestBody:A,requestBodyValue:v.requestBodyValue.apply(v,$t()(f)),requestBodyInclusionSetting:v.requestBodyInclusionSetting.apply(v,$t()(f)),requestBodyErrors:v.requestBodyErrors.apply(v,$t()(f)),isExecute:w,getConfigs:d,activeExamplesKey:v.activeExamplesMember.apply(v,l()(t=$t()(f)).call(t,["requestBody","requestBody"])),updateActiveExamplesKey:function(e){n.props.oas3Actions.setActiveExamplesMember({name:e,pathMethod:n.props.pathMethod,contextType:"requestBody",contextName:"requestBody"})},onChange:function(e,t){if(t){var n=v.requestBodyValue.apply(v,$t()(f)),r=L.Map.isMap(n)?n:(0,L.Map)();return g.setRequestBodyValue({pathMethod:f,value:r.setIn(t,e)})}g.setRequestBodyValue({value:e,pathMethod:f})},onChangeIncludeEmpty:function(e,t){g.setRequestBodyInclusion({pathMethod:f,value:t,name:e})},contentType:v.requestContentType.apply(v,$t()(f))}))))}}]),n}(j.Component);E()(nn,"defaultProps",{onTryoutClick:Function.prototype,onCancelClick:Function.prototype,tryItOutEnabled:!1,allowTryItOut:!0,onChangeKey:[],specPath:[]});const rn=function(e){var t=e.xKey,n=e.xVal;return V().createElement("div",{className:"parameter__extension"},t,": ",String(n))};var an={onChange:function(){},isIncludedOptions:{}},on=function(e){Se()(n,e);var t=Ce()(n);function n(){var e,r;b()(this,n);for(var a=arguments.length,o=new Array(a),s=0;s1&&void 0!==arguments[1]&&arguments[1],n=a.props,r=n.onChange,o=n.rawParam;return r(o,""===e||e&&0===e.size?null:e,t)})),E()(ye()(a),"_onExampleSelect",(function(e){a.props.oas3Actions.setActiveExamplesMember({name:e,pathMethod:a.props.pathMethod,contextType:"parameters",contextName:a.getParamKey()})})),E()(ye()(a),"onChangeIncludeEmpty",(function(e){var t=a.props,n=t.specActions,r=t.param,o=t.pathMethod,s=r.get("name"),l=r.get("in");return n.updateEmptyParamInclusion(o,s,l,e)})),E()(ye()(a),"setDefaultValue",(function(){var e=a.props,t=e.specSelectors,n=e.pathMethod,r=e.rawParam,o=e.oas3Selectors,s=t.parameterWithMetaByIdentity(n,r)||(0,L.Map)(),i=(0,sn.Z)(s,{isOAS3:t.isOAS3()}).schema,c=s.get("content",(0,L.Map)()).keySeq().first(),u=i?(0,K.xi)(i.toJS(),c,{includeWriteOnly:!0}):null;if(s&&void 0===s.get("value")&&"body"!==s.get("in")){var p;if(t.isSwagger2())p=void 0!==s.get("x-example")?s.get("x-example"):void 0!==s.getIn(["schema","example"])?s.getIn(["schema","example"]):i&&i.getIn(["default"]);else if(t.isOAS3()){var d,m=o.activeExamplesMember.apply(o,l()(d=$t()(n)).call(d,["parameters",a.getParamKey()]));p=void 0!==s.getIn(["examples",m,"value"])?s.getIn(["examples",m,"value"]):void 0!==s.getIn(["content",c,"example"])?s.getIn(["content",c,"example"]):void 0!==s.get("example")?s.get("example"):void 0!==(i&&i.get("example"))?i&&i.get("example"):void 0!==(i&&i.get("default"))?i&&i.get("default"):s.get("default")}void 0===p||L.List.isList(p)||(p=(0,K.Pz)(p)),void 0!==p?a.onChangeWrapper(p):i&&"object"===i.get("type")&&u&&!s.get("examples")&&a.onChangeWrapper(L.List.isList(u)?u:(0,K.Pz)(u))}})),a.setDefaultValue(),a}return x()(n,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t,n=e.specSelectors,r=e.pathMethod,a=e.rawParam,o=n.isOAS3(),s=n.parameterWithMetaByIdentity(r,a)||new L.Map;if(s=s.isEmpty()?a:s,o){var l=(0,sn.Z)(s,{isOAS3:o}).schema;t=l?l.get("enum"):void 0}else t=s?s.get("enum"):void 0;var i,c=s?s.get("value"):void 0;void 0!==c?i=c:a.get("required")&&t&&t.size&&(i=t.first()),void 0!==i&&i!==c&&this.onChangeWrapper((0,K.D$)(i)),this.setDefaultValue()}},{key:"getParamKey",value:function(){var e,t=this.props.param;return t?l()(e="".concat(t.get("name"),"-")).call(e,t.get("in")):null}},{key:"render",value:function(){var e,t,n,r,a=this.props,o=a.param,s=a.rawParam,i=a.getComponent,c=a.getConfigs,u=a.isExecute,p=a.fn,d=a.onChangeConsumes,m=a.specSelectors,h=a.pathMethod,f=a.specPath,g=a.oas3Selectors,v=m.isOAS3(),y=c(),E=y.showExtensions,S=y.showCommonExtensions;if(o||(o=s),!s)return null;var b,C,x,w,_=i("JsonSchemaForm"),A=i("ParamBody"),k=o.get("in"),N="body"!==k?null:V().createElement(A,{getComponent:i,getConfigs:c,fn:p,param:o,consumes:m.consumesOptionsFor(h),consumesValue:m.contentTypeValues(h).get("requestContentType"),onChange:this.onChangeWrapper,onChangeConsumes:d,isExecute:u,specSelectors:m,pathMethod:h}),I=i("modelExample"),q=i("Markdown",!0),R=i("ParameterExt"),P=i("ParameterIncludeEmpty"),T=i("ExamplesSelectValueRetainer"),O=i("Example"),j=(0,sn.Z)(o,{isOAS3:v}).schema,D=m.parameterWithMetaByIdentity(h,s)||(0,L.Map)(),U=j?j.get("format"):null,z=j?j.get("type"):null,B=j?j.getIn(["items","type"]):null,J="formData"===k,F="FormData"in H.Z,W=o.get("required"),Z=D?D.get("value"):"",G=S?(0,K.po)(j):null,Y=E?(0,K.nX)(o):null,X=!1;return void 0!==o&&j&&(b=j.get("items")),void 0!==b?(C=b.get("enum"),x=b.get("default")):j&&(C=j.get("enum")),C&&C.size&&C.size>0&&(X=!0),void 0!==o&&(j&&(x=j.get("default")),void 0===x&&(x=o.get("default")),void 0===(w=o.get("example"))&&(w=o.get("x-example"))),V().createElement("tr",{"data-param-name":o.get("name"),"data-param-in":o.get("in")},V().createElement("td",{className:"parameters-col_name"},V().createElement("div",{className:W?"parameter__name required":"parameter__name"},o.get("name"),W?V().createElement("span",null," *"):null),V().createElement("div",{className:"parameter__type"},z,B&&"[".concat(B,"]"),U&&V().createElement("span",{className:"prop-format"},"($",U,")")),V().createElement("div",{className:"parameter__deprecated"},v&&o.get("deprecated")?"deprecated":null),V().createElement("div",{className:"parameter__in"},"(",o.get("in"),")"),S&&G.size?M()(e=G.entrySeq()).call(e,(function(e){var t,n=Ct()(e,2),r=n[0],a=n[1];return V().createElement(R,{key:l()(t="".concat(r,"-")).call(t,a),xKey:r,xVal:a})})):null,E&&Y.size?M()(t=Y.entrySeq()).call(t,(function(e){var t,n=Ct()(e,2),r=n[0],a=n[1];return V().createElement(R,{key:l()(t="".concat(r,"-")).call(t,a),xKey:r,xVal:a})})):null),V().createElement("td",{className:"parameters-col_description"},o.get("description")?V().createElement(q,{source:o.get("description")}):null,!N&&u||!X?null:V().createElement(q,{className:"parameter__enum",source:"Available values : "+M()(C).call(C,(function(e){return e})).toArray().join(", ")}),!N&&u||void 0===x?null:V().createElement(q,{className:"parameter__default",source:"Default value : "+x}),!N&&u||void 0===w?null:V().createElement(q,{source:"Example : "+w}),J&&!F&&V().createElement("div",null,"Error: your browser does not support FormData"),v&&o.get("examples")?V().createElement("section",{className:"parameter-controls"},V().createElement(T,{examples:o.get("examples"),onSelect:this._onExampleSelect,updateValue:this.onChangeWrapper,getComponent:i,defaultToFirstExample:!0,currentKey:g.activeExamplesMember.apply(g,l()(n=$t()(h)).call(n,["parameters",this.getParamKey()])),currentUserInputValue:Z})):null,N?null:V().createElement(_,{fn:p,getComponent:i,value:Z,required:W,disabled:!u,description:o.get("name"),onChange:this.onChangeWrapper,errors:D.get("errors"),schema:j}),N&&j?V().createElement(I,{getComponent:i,specPath:f.push("schema"),getConfigs:c,isExecute:u,specSelectors:m,schema:j,example:N,includeWriteOnly:!0}):null,!N&&u&&o.get("allowEmptyValue")?V().createElement(P,{onChange:this.onChangeIncludeEmpty,isIncluded:m.parameterInclusionSettingFor(h,o.get("name"),o.get("in")),isDisabled:!(0,K.O2)(Z)}):null,v&&o.get("examples")?V().createElement(O,{example:o.getIn(["examples",g.activeExamplesMember.apply(g,l()(r=$t()(h)).call(r,["parameters",this.getParamKey()]))]),getComponent:i,getConfigs:c}):null))}}]),n}(j.Component),cn=n(9300),un=n.n(cn),pn=function(e){Se()(n,e);var t=Ce()(n);function n(){var e,r;b()(this,n);for(var a=arguments.length,o=new Array(a),s=0;s0&&"none"!==p),f=r.isOAS3(),g=a("ModelWrapper"),v=a("Collapse"),y=a("ModelCollapse"),E=a("JumpToPath",!0);return V().createElement("section",{className:h?"models is-open":"models",ref:this.onLoadModels},V().createElement("h4",null,V().createElement("button",{"aria-expanded":h,className:"models-control",onClick:function(){return s.show(m,!h)}},V().createElement("span",null,f?"Schemas":"Models"),V().createElement("svg",{width:"20",height:"20","aria-hidden":"true",focusable:"false"},V().createElement("use",{xlinkHref:h?"#large-arrow-up":"#large-arrow-down"})))),V().createElement(v,{isOpened:h},M()(e=c.entrySeq()).call(e,(function(e){var n,c=Ct()(e,1)[0],u=l()(n=[]).call(n,$t()(m),[c]),p=U().List(u),h=r.specResolvedSubtree(u),f=r.specJson().getIn(u),v=L.Map.isMap(h)?h:U().Map(),S=L.Map.isMap(f)?f:U().Map(),b=v.get("title")||S.get("title")||c,C=o.isShown(u,!1);C&&0===v.size&&S.size>0&&t.props.specActions.requestResolvedSubtree(u);var x=V().createElement(g,{name:c,expandDepth:d,schema:v||U().Map(),displayName:b,fullPath:u,specPath:p,getComponent:a,specSelectors:r,getConfigs:i,layoutSelectors:o,layoutActions:s,includeReadOnly:!0,includeWriteOnly:!0}),w=V().createElement("span",{className:"model-box"},V().createElement("span",{className:"model model-title"},b));return V().createElement("div",{id:"model-".concat(c),className:"model-container",key:"models-section-".concat(c),"data-name":c,ref:t.onLoadModel},V().createElement("span",{className:"models-jump-to-path"},V().createElement(E,{specPath:p})),V().createElement(y,{classes:"model-box",collapsedContent:t.getCollapsedContent(c),onToggle:t.handleToggle,title:w,displayName:b,modelName:c,specPath:p,layoutSelectors:o,layoutActions:s,hideSelfOnExpand:!0,expanded:d>0&&C},x))})).toArray()))}}]),n}(j.Component);const ur=function(e){var t=e.value,n=(0,e.getComponent)("ModelCollapse"),r=V().createElement("span",null,"Array [ ",t.count()," ]");return V().createElement("span",{className:"prop-enum"},"Enum:",V().createElement("br",null),V().createElement(n,{collapsedContent:r},"[ ",t.join(", ")," ]"))};var pr=["schema","name","displayName","isRef","getComponent","getConfigs","depth","onToggle","expanded","specPath"],dr=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e,t,n,r,a=this.props,o=a.schema,s=a.name,i=a.displayName,c=a.isRef,u=a.getComponent,d=a.getConfigs,m=a.depth,h=a.onToggle,g=a.expanded,v=a.specPath,y=bn()(a,pr),E=y.specSelectors,S=y.expandDepth,b=y.includeReadOnly,C=y.includeWriteOnly,x=E.isOAS3;if(!o)return null;var w=d().showExtensions,_=o.get("description"),A=o.get("properties"),k=o.get("additionalProperties"),N=o.get("title")||i||s,q=o.get("required"),R=p()(o).call(o,(function(e,t){var n;return-1!==we()(n=["maxProperties","minProperties","nullable","example"]).call(n,t)})),P=o.get("deprecated"),T=u("JumpToPath",!0),O=u("Markdown",!0),j=u("Model"),D=u("ModelCollapse"),U=u("Property"),z=function(){return V().createElement("span",{className:"model-jump-to-path"},V().createElement(T,{specPath:v}))},B=V().createElement("span",null,V().createElement("span",null,"{"),"...",V().createElement("span",null,"}"),c?V().createElement(z,null):""),J=E.isOAS3()?o.get("anyOf"):null,F=E.isOAS3()?o.get("oneOf"):null,W=E.isOAS3()?o.get("not"):null,H=N&&V().createElement("span",{className:"model-title"},c&&o.get("$$ref")&&V().createElement("span",{className:"model-hint"},o.get("$$ref")),V().createElement("span",{className:"model-title__text"},N));return V().createElement("span",{className:"model"},V().createElement(D,{modelName:s,title:H,onToggle:h,expanded:!!g||m<=S,collapsedContent:B},V().createElement("span",{className:"brace-open object"},"{"),c?V().createElement(z,null):null,V().createElement("span",{className:"inner-object"},V().createElement("table",{className:"model"},V().createElement("tbody",null,_?V().createElement("tr",{className:"description"},V().createElement("td",null,"description:"),V().createElement("td",null,V().createElement(O,{source:_}))):null,P?V().createElement("tr",{className:"property"},V().createElement("td",null,"deprecated:"),V().createElement("td",null,"true")):null,A&&A.size?M()(e=p()(t=A.entrySeq()).call(t,(function(e){var t=Ct()(e,2)[1];return(!t.get("readOnly")||b)&&(!t.get("writeOnly")||C)}))).call(e,(function(e){var t,n,r=Ct()(e,2),a=r[0],o=r[1],i=x()&&o.get("deprecated"),c=L.List.isList(q)&&q.contains(a),p=["property-row"];return i&&p.push("deprecated"),c&&p.push("required"),V().createElement("tr",{key:a,className:p.join(" ")},V().createElement("td",null,a,c&&V().createElement("span",{className:"star"},"*")),V().createElement("td",null,V().createElement(j,En()({key:l()(t=l()(n="object-".concat(s,"-")).call(n,a,"_")).call(t,o)},y,{required:c,getComponent:u,specPath:v.push("properties",a),getConfigs:d,schema:o,depth:m+1}))))})).toArray():null,w?V().createElement("tr",null,V().createElement("td",null," ")):null,w?M()(n=o.entrySeq()).call(n,(function(e){var t=Ct()(e,2),n=t[0],r=t[1];if("x-"===I()(n).call(n,0,2)){var a=r?r.toJS?r.toJS():r:null;return V().createElement("tr",{key:n,className:"extension"},V().createElement("td",null,n),V().createElement("td",null,f()(a)))}})).toArray():null,k&&k.size?V().createElement("tr",null,V().createElement("td",null,"< * >:"),V().createElement("td",null,V().createElement(j,En()({},y,{required:!1,getComponent:u,specPath:v.push("additionalProperties"),getConfigs:d,schema:k,depth:m+1})))):null,J?V().createElement("tr",null,V().createElement("td",null,"anyOf ->"),V().createElement("td",null,M()(J).call(J,(function(e,t){return V().createElement("div",{key:t},V().createElement(j,En()({},y,{required:!1,getComponent:u,specPath:v.push("anyOf",t),getConfigs:d,schema:e,depth:m+1})))})))):null,F?V().createElement("tr",null,V().createElement("td",null,"oneOf ->"),V().createElement("td",null,M()(F).call(F,(function(e,t){return V().createElement("div",{key:t},V().createElement(j,En()({},y,{required:!1,getComponent:u,specPath:v.push("oneOf",t),getConfigs:d,schema:e,depth:m+1})))})))):null,W?V().createElement("tr",null,V().createElement("td",null,"not ->"),V().createElement("td",null,V().createElement("div",null,V().createElement(j,En()({},y,{required:!1,getComponent:u,specPath:v.push("not"),getConfigs:d,schema:W,depth:m+1}))))):null))),V().createElement("span",{className:"brace-close"},"}")),R.size?M()(r=R.entrySeq()).call(r,(function(e){var t,n=Ct()(e,2),r=n[0],a=n[1];return V().createElement(U,{key:l()(t="".concat(r,"-")).call(t,a),propKey:r,propVal:a,propClass:"property"})})):null)}}]),n}(j.Component),mr=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e,t=this.props,n=t.getComponent,r=t.getConfigs,a=t.schema,o=t.depth,s=t.expandDepth,i=t.name,c=t.displayName,u=t.specPath,d=a.get("description"),m=a.get("items"),h=a.get("title")||c||i,f=p()(a).call(a,(function(e,t){var n;return-1===we()(n=["type","items","description","$$ref"]).call(n,t)})),g=n("Markdown",!0),v=n("ModelCollapse"),y=n("Model"),E=n("Property"),S=h&&V().createElement("span",{className:"model-title"},V().createElement("span",{className:"model-title__text"},h));return V().createElement("span",{className:"model"},V().createElement(v,{title:S,expanded:o<=s,collapsedContent:"[...]"},"[",f.size?M()(e=f.entrySeq()).call(e,(function(e){var t,n=Ct()(e,2),r=n[0],a=n[1];return V().createElement(E,{key:l()(t="".concat(r,"-")).call(t,a),propKey:r,propVal:a,propClass:"property"})})):null,d?V().createElement(g,{source:d}):f.size?V().createElement("div",{className:"markdown"}):null,V().createElement("span",null,V().createElement(y,En()({},this.props,{getConfigs:r,specPath:u.push("items"),name:null,schema:m,required:!1,depth:o+1}))),"]"))}}]),n}(j.Component),hr="property primitive",fr=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e,t,n,r=this.props,a=r.schema,o=r.getComponent,s=r.getConfigs,i=r.name,c=r.displayName,u=r.depth,d=r.expandDepth,m=s().showExtensions;if(!a||!a.get)return V().createElement("div",null);var h=a.get("type"),f=a.get("format"),g=a.get("xml"),v=a.get("enum"),y=a.get("title")||c||i,E=a.get("description"),S=(0,K.nX)(a),b=p()(a).call(a,(function(e,t){var n;return-1===we()(n=["enum","type","format","description","$$ref"]).call(n,t)})).filterNot((function(e,t){return S.has(t)})),C=o("Markdown",!0),x=o("EnumModel"),w=o("Property"),_=o("ModelCollapse"),A=y&&V().createElement("span",{className:"model-title"},V().createElement("span",{className:"model-title__text"},y));return V().createElement("span",{className:"model"},V().createElement(_,{title:A,expanded:u>=d,collapsedContent:" ",hideSelfOnExpand:d!==u},V().createElement("span",{className:"prop"},i&&u>1&&V().createElement("span",{className:"prop-name"},y),V().createElement("span",{className:"prop-type"},h),f&&V().createElement("span",{className:"prop-format"},"($",f,")"),b.size?M()(e=b.entrySeq()).call(e,(function(e){var t,n=Ct()(e,2),r=n[0],a=n[1];return V().createElement(w,{key:l()(t="".concat(r,"-")).call(t,a),propKey:r,propVal:a,propClass:hr})})):null,m&&S.size?M()(t=S.entrySeq()).call(t,(function(e){var t,n=Ct()(e,2),r=n[0],a=n[1];return V().createElement(w,{key:l()(t="".concat(r,"-")).call(t,a),propKey:r,propVal:a,propClass:hr})})):null,E?V().createElement(C,{source:E}):null,g&&g.size?V().createElement("span",null,V().createElement("br",null),V().createElement("span",{className:hr},"xml:"),M()(n=g.entrySeq()).call(n,(function(e){var t,n=Ct()(e,2),r=n[0],a=n[1];return V().createElement("span",{key:l()(t="".concat(r,"-")).call(t,a),className:hr},V().createElement("br",null),"   ",r,": ",String(a))})).toArray()):null,v&&V().createElement(x,{value:v,getComponent:o}))))}}]),n}(j.Component);const gr=function(e){var t=e.propKey,n=e.propVal,r=e.propClass;return V().createElement("span",{className:r},V().createElement("br",null),t,": ",String(n))};var vr=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e=this.props,t=e.onTryoutClick,n=e.onCancelClick,r=e.onResetClick,a=e.enabled,o=e.hasUserEditedBody,s=e.isOAS3&&o;return V().createElement("div",{className:s?"try-out btn-group":"try-out"},a?V().createElement("button",{className:"btn try-out__btn cancel",onClick:n},"Cancel"):V().createElement("button",{className:"btn try-out__btn",onClick:t},"Try it out "),s&&V().createElement("button",{className:"btn try-out__btn reset",onClick:r},"Reset"))}}]),n}(V().Component);E()(vr,"defaultProps",{onTryoutClick:Function.prototype,onCancelClick:Function.prototype,onResetClick:Function.prototype,enabled:!1,hasUserEditedBody:!1,isOAS3:!1});var yr=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e=this.props,t=e.bypass,n=e.isSwagger2,r=e.isOAS3,a=e.alsoShow;return t?V().createElement("div",null,this.props.children):n&&r?V().createElement("div",{className:"version-pragma"},a,V().createElement("div",{className:"version-pragma__message version-pragma__message--ambiguous"},V().createElement("div",null,V().createElement("h3",null,"Unable to render this definition"),V().createElement("p",null,V().createElement("code",null,"swagger")," and ",V().createElement("code",null,"openapi")," fields cannot be present in the same Swagger or OpenAPI definition. Please remove one of the fields."),V().createElement("p",null,"Supported version fields are ",V().createElement("code",null,"swagger: ",'"2.0"')," and those that match ",V().createElement("code",null,"openapi: 3.0.n")," (for example, ",V().createElement("code",null,"openapi: 3.0.0"),").")))):n||r?V().createElement("div",null,this.props.children):V().createElement("div",{className:"version-pragma"},a,V().createElement("div",{className:"version-pragma__message version-pragma__message--missing"},V().createElement("div",null,V().createElement("h3",null,"Unable to render this definition"),V().createElement("p",null,"The provided definition does not specify a valid version field."),V().createElement("p",null,"Please indicate a valid Swagger or OpenAPI version field. Supported version fields are ",V().createElement("code",null,"swagger: ",'"2.0"')," and those that match ",V().createElement("code",null,"openapi: 3.0.n")," (for example, ",V().createElement("code",null,"openapi: 3.0.0"),")."))))}}]),n}(V().PureComponent);E()(yr,"defaultProps",{alsoShow:null,children:null,bypass:!1});const Er=function(e){var t=e.version;return V().createElement("small",null,V().createElement("pre",{className:"version"}," ",t," "))};const Sr=function(e){var t=e.enabled,n=e.path,r=e.text;return V().createElement("a",{className:"nostyle",onClick:t?function(e){return e.preventDefault()}:null,href:t?"#/".concat(n):null},V().createElement("span",null,r))};const br=function(){return V().createElement("div",null,V().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",className:"svg-assets"},V().createElement("defs",null,V().createElement("symbol",{viewBox:"0 0 20 20",id:"unlocked"},V().createElement("path",{d:"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z"})),V().createElement("symbol",{viewBox:"0 0 20 20",id:"locked"},V().createElement("path",{d:"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z"})),V().createElement("symbol",{viewBox:"0 0 20 20",id:"close"},V().createElement("path",{d:"M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z"})),V().createElement("symbol",{viewBox:"0 0 20 20",id:"large-arrow"},V().createElement("path",{d:"M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z"})),V().createElement("symbol",{viewBox:"0 0 20 20",id:"large-arrow-down"},V().createElement("path",{d:"M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z"})),V().createElement("symbol",{viewBox:"0 0 20 20",id:"large-arrow-up"},V().createElement("path",{d:"M 17.418 14.908 C 17.69 15.176 18.127 15.176 18.397 14.908 C 18.667 14.64 18.668 14.207 18.397 13.939 L 10.489 6.109 C 10.219 5.841 9.782 5.841 9.51 6.109 L 1.602 13.939 C 1.332 14.207 1.332 14.64 1.602 14.908 C 1.873 15.176 2.311 15.176 2.581 14.908 L 10 7.767 L 17.418 14.908 Z"})),V().createElement("symbol",{viewBox:"0 0 24 24",id:"jump-to"},V().createElement("path",{d:"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"})),V().createElement("symbol",{viewBox:"0 0 24 24",id:"expand"},V().createElement("path",{d:"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"})))))};var Cr=n(2552),xr=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"render",value:function(){var e=this.props,t=e.errSelectors,n=e.specSelectors,r=e.getComponent,a=r("SvgAssets"),o=r("InfoContainer",!0),s=r("VersionPragmaFilter"),l=r("operations",!0),i=r("Models",!0),c=r("Row"),u=r("Col"),p=r("errors",!0),d=r("ServersContainer",!0),m=r("SchemesContainer",!0),h=r("AuthorizeBtnContainer",!0),f=r("FilterContainer",!0),g=n.isSwagger2(),v=n.isOAS3(),y=!n.specStr(),E=n.loadingStatus(),S=null;if("loading"===E&&(S=V().createElement("div",{className:"info"},V().createElement("div",{className:"loading-container"},V().createElement("div",{className:"loading"})))),"failed"===E&&(S=V().createElement("div",{className:"info"},V().createElement("div",{className:"loading-container"},V().createElement("h4",{className:"title"},"Failed to load API definition."),V().createElement(p,null)))),"failedConfig"===E){var b=t.lastError(),C=b?b.get("message"):"";S=V().createElement("div",{className:"info failed-config"},V().createElement("div",{className:"loading-container"},V().createElement("h4",{className:"title"},"Failed to load remote configuration."),V().createElement("p",null,C)))}if(!S&&y&&(S=V().createElement("h4",null,"No API definition provided.")),S)return V().createElement("div",{className:"swagger-ui"},V().createElement("div",{className:"loading-container"},S));var x=n.servers(),w=n.schemes(),_=x&&x.size,A=w&&w.size,k=!!n.securityDefinitions();return V().createElement("div",{className:"swagger-ui"},V().createElement(a,null),V().createElement(s,{isSwagger2:g,isOAS3:v,alsoShow:V().createElement(p,null)},V().createElement(p,null),V().createElement(c,{className:"information-container"},V().createElement(u,{mobile:12},V().createElement(o,null))),_||A||k?V().createElement("div",{className:"scheme-container"},V().createElement(u,{className:"schemes wrapper",mobile:12},_?V().createElement(d,null):null,A?V().createElement(m,null):null,k?V().createElement(h,null):null)):null,V().createElement(f,null),V().createElement(c,null,V().createElement(u,{mobile:12,desktop:12},V().createElement(l,null))),V().createElement(c,null,V().createElement(u,{mobile:12,desktop:12},V().createElement(i,null)))))}}]),n}(V().Component);const wr=require("react-debounce-input");var _r=n.n(wr),Ar={value:"",onChange:function(){},schema:{},keyName:"",required:!1,errors:(0,L.List)()},kr=function(e){Se()(n,e);var t=Ce()(n);function n(){return b()(this,n),t.apply(this,arguments)}return x()(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.dispatchInitialValue,n=e.value,r=e.onChange;t?r(n):!1===t&&r("")}},{key:"render",value:function(){var e,t=this.props,n=t.schema,r=t.errors,a=t.value,o=t.onChange,s=t.getComponent,i=t.fn,c=t.disabled,u=n&&n.get?n.get("format"):null,p=n&&n.get?n.get("type"):null,d=function(e){return s(e,!1,{failSilently:!0})},m=p?d(u?l()(e="JsonSchema_".concat(p,"_")).call(e,u):"JsonSchema_".concat(p)):s("JsonSchema_string");return m||(m=s("JsonSchema_string")),V().createElement(m,En()({},this.props,{errors:r,fn:i,getComponent:s,value:a,onChange:o,schema:n,disabled:c}))}}]),n}(j.Component);E()(kr,"defaultProps",Ar);var Nr=function(e){Se()(n,e);var t=Ce()(n);function n(){var e,r;b()(this,n);for(var a=arguments.length,o=new Array(a),s=0;s0),v=o.getIn(["items","enum"]),y=o.getIn(["items","type"]),E=o.getIn(["items","format"]),S=o.get("items"),b=!1,C="file"===y||"string"===y&&"binary"===E;y&&E?u=r(l()(d="JsonSchema_".concat(y,"_")).call(d,E)):"boolean"!==y&&"array"!==y&&"object"!==y||(u=r("JsonSchema_".concat(y)));if(u||C||(b=!0),v){var x=r("Select");return V().createElement(x,{className:s.length?"invalid":"",title:s.length?s:"",multiple:!0,value:f,disabled:c,allowedValues:v,allowEmptyValue:!a,onChange:this.onEnumChange})}var w=r("Button");return V().createElement("div",{className:"json-schema-array"},g?M()(f).call(f,(function(e,n){var a,o=(0,L.fromJS)($t()(M()(a=p()(s).call(s,(function(e){return e.index===n}))).call(a,(function(e){return e.error}))));return V().createElement("div",{key:n,className:"json-schema-form-item"},C?V().createElement(Rr,{value:e,onChange:function(e){return t.onItemChange(e,n)},disabled:c,errors:o,getComponent:r}):b?V().createElement(qr,{value:e,onChange:function(e){return t.onItemChange(e,n)},disabled:c,errors:o}):V().createElement(u,En()({},t.props,{value:e,onChange:function(e){return t.onItemChange(e,n)},disabled:c,errors:o,schema:S,getComponent:r,fn:i})),c?null:V().createElement(w,{className:"btn btn-sm json-schema-form-item-remove ".concat(h.length?"invalid":null),title:h.length?h:"",onClick:function(){return t.removeItem(n)}}," - "))})):null,c?null:V().createElement(w,{className:"btn btn-sm json-schema-form-item-add ".concat(m.length?"invalid":null),title:m.length?m:"",onClick:this.addItem},"Add ",y?"".concat(y," "):"","item"))}}]),n}(j.PureComponent);E()(Ir,"defaultProps",Ar);var qr=function(e){Se()(n,e);var t=Ce()(n);function n(){var e,r;b()(this,n);for(var a=arguments.length,o=new Array(a),s=0;s + + + Swagger UI: OAuth2 Redirect + + + + + diff --git a/v6.0.0-beta01/aws/index.html b/v6.0.0-beta01/aws/index.html new file mode 100644 index 000000000..1293a3170 --- /dev/null +++ b/v6.0.0-beta01/aws/index.html @@ -0,0 +1,740 @@ + + + + + + + + + + + + +AWS - IoT Hub Portal + + + + + + + + + + + +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

AWS configurations

+

Overall Architecture

+

This schema represent the various components and how they interact to have a better understanding of the various solution elements.

+

images/awsdeploy-designer.png

+
    +
  1. The user is authenticated by the OpenID Connect server.
  2. +
  3. The user access to the IoT Hub Portal with the OAuth2.0 token.
  4. +
  5. The IoT Hub portal uses the AWS IoT REST API to retrieve the data.
  6. +
  7. The IoT Hub portal uses the AWS S3 storage to store the device models configuration (Images, Commands, etc.).
  8. +
  9. The IoT Hub portal synchronizes its data with the IoT Hub to provide a consistent view of the data.
  10. +
+

Quick Start

+

Prerequisites

+
    +
  • You must have an AWS Account. Get an AWS Free account to get started.
  • +
  • +

    You must enable Fleet Indexing for registry and shadow
    +Using AWS CLI:

    +
    Bash Session
    aws iot update-indexing-configuration --thing-indexing-configuration thingIndexingMode=REGISTRY_AND_SHADOW
    +
    +
    +

    Please note that you'll need the necessary permissions to execute this command. Make sure your AWS IAM user or role has the appropriate permissions to access and modify the IoT indexing configuration.

    +
    +
  • +
+

Deployed Resources

+

The template will deploy in your AWS Account the Following resources:

+
    +
  • AWS RDS - Database for PostgreSQL
  • +
  • AWS S3 Bucket
  • +
  • AWS App Runner Service
  • +
+

Instructions

+
    +
  1. +

    Choose a stack name for your AWS Deployment.

    +
  2. +
  3. +

    Follow next step below to start your deployment:

    +
      +
    1. +

      Press on the button here below to download the template AWS:
      +Download the template

      +
    2. +
    3. +

      Import your template :
      +From the AWS console: CloudFormation new stack
      + - You can change the deployment region by changing the region directly in the URL
      + - In "Upload a template file" import the previously downloaded file
      +With AWS CLI:

      +
      Bash Session
      aws cloudformation deploy --template /path_to_template/awsdeploy.yml --stack-name your-stack-name --region your-region
      +
      +
      +

      see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-deploy.html for more option about aws cloudformation deploy

      +
      +
    4. +
    +
  4. +
  5. +

    You will get to a page asking you to fill the following fields:

    +
      +
    • Stack Name: A name for the stack where all the template resource would be put into, just choose a meaningful name.
    • +
    • PostgreSQL user: The PostgreSQL user name to be used for the IoT Hub Portal database.
    • +
    • PostgreSQL password: The PostgreSQL password to be used for the IoT Hub Portal database.
    • +
    • AWS Access Key: The AWS Access Key of your AWS environment.
    • +
    • AWS Access Secret Key: The AWS Access Secret Key of your AWS environment.
    • +
    • Api Client Id: the ID of the API client that will be used to authenticate the portal.
    • +
    • Client Id: the ID of the web client that will be used to authenticate the portal.
    • +
    • Open Id Authority: The OpenID authority used by the portal.
    • +
    • OpenId Metadata URL: The OpenID metadata URL used by the portal.
    • +
    • OpenId Scope Name: The Open ID Scope name
    • +
    +
  6. +
+

Configurations

+

This configurations are used to get access to AWS cloud Platform. You have to enter them in a json file to be able to connect to the Iot Hub Portal. Here is a template of a such json file.

+
JSON
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
{
+  "CloudProvider": "AWS",
+  "AWS:Access": "<ACCESS_KEY>",
+  "AWS:AccessSecret": "<ACCESS_SECRET_KEY>",
+  "AWS:Region": "<REGION_KEY>",
+  "AWS:BucketName": "<BUCKET_NAME>",  
+  "AWS:AccountId": "<ACCOUNT_IDENTIFIER>",
+  "AWS:GreengrassRequiredRoles:<ID>": "<GREENGRASS_ROLE_NAME>",
+  "OIDC:Scope": "<SCOPE>",
+  "OIDC:MetadataUrl": "<METADATA_URL>",
+  "OIDC:ClientId": "<CLIENT_ID>",
+  "OIDC:Authority": "<AUTHORITY>",
+  "OIDC:ApiClientId": "<API_CLIENT_ID>",
+  "PostgreSQL:ConnectionString": "<POSTGRE_SQL_CONNECTION_STRING>"
+}
+
+
+

Note: You must replace all values in the brackets by your own AWS settings. If you can't find them in the AWS Portal, please contact an administrator of this project to have more information.

+
+

You are now ready to start your IoT Hub Portal development !

+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/azure/index.html b/v6.0.0-beta01/azure/index.html new file mode 100644 index 000000000..ffe019062 --- /dev/null +++ b/v6.0.0-beta01/azure/index.html @@ -0,0 +1,762 @@ + + + + + + + + + + + + +Azure - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

Azure Configurations

+

Overall Architecture

+

This schema represent the various components and how they interact to have a better understanding of the various solution elements.

+

images/overall-architecture.png

+
    +
  1. The user is authenticated by the OpenID Connect server.
  2. +
  3. The user access to the IoT Hub Portal with the OAuth2.0 token.
  4. +
  5. The IoT Hub portal uses the Azure IoT Hub REST API to retrieve the data.
  6. +
  7. The IoT Hub portal uses the Azure Device Provisioning Service to manage IoT Edge devices.
  8. +
  9. The IoT Hub portal uses the Azure Storage account to store the device models configuration (Images, Commands, etc.).
  10. +
  11. The IoT Hub portal uses the LoRa Key Management Facade to send Cloud to Device (C2D) messages to LoRa devices.
  12. +
  13. The LoRa Key Management Facade uses Redis to store its cached data.
  14. +
  15. The LoRa Key Management Facade uses the Azure IoT Hub REST API to retrieve the LoRa device keys and send C2D messages.
  16. +
  17. The IoT Hub portal synchronizes its data with the IoT Hub to provide a consistent view of the data.
  18. +
+
+

Note: For more information about the LoRa Key Management Facade, see the Azure IoT Edge LoRaWAN Starter Kit page.

+
+

Quick Start

+

Prerequisites

+ +

Deployed Resources

+

The template will deploy in your Azure subscription the Following resources:

+
    +
  • IoT Hub
  • +
  • Azure Function and Consumption Service Plan
  • +
  • Redis Cache
  • +
  • Application Insights
  • +
  • Log Analytics (when opted in to use Azure Monitor)
  • +
  • Azure WebApp and Service Plan
  • +
  • Azure Database for PostgreSQL
  • +
+

Instructions

+
    +
  1. +

    Choose a solution prefix for your Azure Deployment.

    +
  2. +
  3. +

    Configure your AD to connect to the portal. + Use Portal AD applications configuration page to configure your AD B2C Tenant :

    +
    +

    You should have recorded the following information:

    +
      +
    • OpenID authority: <your-openid-authority>
    • +
    • OpenID metadata URL: <your-openid-provider-metadata-url>
    • +
    • Client ID: <your-client-id>
    • +
    • API Client ID: <your-client-id>
    • +
    +
    +
  4. +
  5. +

    Press on the button here below to start your deployment on Azure:
    +Deploy to Azure

    +
  6. +
  7. +

    You will get to a page asking you to fill the following fields:

    +
      +
    • Resource Group: A logical "folder" where all the template resource would be put into, just choose a meaningful name.
    • +
    • Location: In which DataCenter the resources should be deployed. Make sure to choose a location where IoT Hub is available
    • +
    • Unique Solution Prefix: A string that would be used as prefix for all the resources name to ensure their uniqueness.
    • +
    • PostgreSQL user: The PostgreSQL user name to be used for the IoT Hub Portal database.
    • +
    • PostgreSQL password: The PostgreSQL password to be used for the IoT Hub Portal database.
    • +
    • Confirm PostgreSQL password: The PostgreSQL password to be used for the IoT Hub Portal database.
    • +
    • Open Id Authority: The OpenID authority used by the portal.
    • +
    • OpenId Metadata URL: The OpenID metadata URL used by the portal.
    • +
    • Client Id: the ID of the web client that will be used to authenticate the portal.
    • +
    • Api Client Id: the ID of the API client that will be used to authenticate the portal.
    • +
    • Edge gateway name: the name of your LoRa Gateway node in the IoT Hub.
    • +
    • Deploy Device: Do you want demo end devices to be already provisioned (one using OTAA and one using ABP)? If yes set this to true, the code located in the Arduino folder would be ready to use immediately.
    • +
    • Reset pin: The reset pin of your gateway (the value should be 7 for the Seed Studio LoRaWan, 25 for the IC880A)
    • +
    • Region: In what region are you operating your device (currently only EU868 and US915 is supported)
    • +
    +
    +

    see: https://azure.github.io/iotedge-lorawan-starterkit/dev/quickstart/#deployed-azure-infrastructure for more information about the LoRaWan IoT Hub and Azure deployment.

    +
    +
  8. +
+

Configurations/Secrets

+

Secrets are used to fill in the login credentials to the cloud platform. You have to enter them in a json file to be able to connect to the IoT Hub Portal. Here is a template of a such json file :

+
JSON
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
{
+  "CloudProvider": "Azure",
+  "OIDC:Scope": "<SCOPE>",
+  "OIDC:MetadataUrl": "<METADATA_URL>",
+  "OIDC:ClientId": "<CLIENT_ID>",
+  "OIDC:Authority": "<AUTHORITY>",
+  "OIDC:ApiClientId": "<API_CLIENT_ID>",
+  "LoRaFeature:Enabled": "<TRUE_OR_FALSE>",
+  "Azure:LoRaRegionRouterConfig:Url": "<LORA_WAN_ROUTER_CONFIGURATION_URL>",
+  "Azure:LoRaKeyManagement:Url": "<LORA_WAN_KEY_MANAGEMENT_URL>",
+  "Azure:LoRaKeyManagement:Code": "<LORA_WAN_KEY_MANAGEMENT_CODE>",
+  "Kestrel:Certificates:Development:Password": "<DEV_PASSWORD>",
+  "Azure:IoTHub:ConnectionString": "<IOT_HUB_CONNECTION_STRING>",
+  "Azure:IoTHub:EventHub:Endpoint": "<IOT_HUB_EVENT_HUB_ENDPOINT>",
+  "Azure:IoTHub:EventHub:ConsumerGroup": "<IOT_HUB_EVENT_HUB_CONSUMER_GROUP>",
+  "Azure:IoTDPS:ServiceEndpoint": "<SERVICE_END_POINT>",
+  "Azure:IoTDPS:LoRaEnrollmentGroup": "<LORA_WAN_ENROLLMENT_GROUP>",
+  "Azure:IoTDPS:DefaultEnrollmentGroup": "<LORA_WAN_DEFAULT_ENROLLMENT_GROUP>",
+  "Azure:IoTDPS:ConnectionString": "<IOT_DPS_CONNECTION_STRING>",
+  "PostgreSQL:ConnectionString": "<POSTGRE_SQL_CONNECTION_STRING>",
+  "Azure:StorageAccount:ConnectionString": "<CONNECTION_STRING_STORAGE_ACCOUNT>"
+}
+
+
+

Note: You must replace all values in the brackets by your own Azure settings. If you can't find them in the Azure Portal, please contact an administrator of this project to have more information.

+
+

This json file must be added into your project solution. To do that, click on the AzureIoTHub.Server project in Visual Studio and select Manage User Secrets from the context menu. You can now add your secrets inside this file.

+

You are now ready to start your IoT Hub Portal development !

+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/b2c-applications/index.html b/v6.0.0-beta01/b2c-applications/index.html new file mode 100644 index 000000000..729aa2a9c --- /dev/null +++ b/v6.0.0-beta01/b2c-applications/index.html @@ -0,0 +1,636 @@ + + + + + + + + + + +Azure AD B2C Tenant with applications - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

Azure AD B2C Tenant with applications

+

This solution uses Azure AD B2C to authenticate the portal. +In this page you will configure the B2C tenant and two applications (API and Web UI).

+

By the end, you should have recorded the following information:

+
Text Only
1
+2
+3
+4
* OpenID authority: `<your-openid-authority>`
+* OpenID metadata URL: `<your-openid-provider-metadata-url>`
+* Client ID: `<your-client-id>`
+* API Client ID: `<your-client-id>`
+
+

Step by Step instructions

+
    +
  1. +

    Create an Azure AD B2C Tenant (see: https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant#create-an-azure-ad-b2c-tenant)

    +
      +
    • Record the tenant ID and the tenant name.
    • +
    +
  2. +
  3. +

    After creating your Azure AD B2C Tenant and registering your applications, you need to set up OpenID Connect to secure your applications. Here’s how to find your OpenID authority and OpenID metadata URL:

    +
      +
    1. Determine your OpenID Authority:
        +
      • Your OpenID Authority is the issuer URL of your Azure AD B2C Tenant. It typically follows the format: https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/v2.0/.
      • +
      • Replace <tenant-name> with your actual tenant name.
      • +
      +
    2. +
    3. Find your OpenID Metadata URL:
        +
      • The OpenID Metadata URL for Azure AD B2C tenants is usually in the format: https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=<policy-name>.
      • +
      • Replace <tenant-name> and <policy-name> with your actual tenant name and the policy name you are using (like B2C_1_SignUpSignIn).
      • +
      +
    4. +
    5. Make sure to record the OpenID authority and OpenID metadata URL for future configuration steps.
    6. +
    +
  4. +
  5. +

    Configure the requiered AD Applications.

    +
      +
    1. +

      Create the IoT Hub Portal API Application:

      +
        +
      • Select App registrations, and then select New registration.
      • +
      • Enter a Name for the application. For example, IoT Hub Portal.
      • +
      • Under Redirect URI, select Web, and then enter an expected endpoint for your portal (ex: https://tenantName.b2clogin.com/tenantName.onmicrosoft.com/oauth2/authresp)
      • +
      • Select Register.
      • +
      • Record the Application (client) ID for use in your web API's code.
      • +
      • Under Manage, select Certificates & Secrets.
      • +
      • Under Client secret, select New client secret.
      • +
      • Enter a name for the secret.
      • +
      • Record the Client secret for use in your web API's code.
      • +
      • Under Manage, select API permissions.
      • +
      • Under Configured permissions, select Add a permission.
      • +
      • Select the Microsoft APIs tab.
      • +
      • Under Commonly used Microsoft APIs, select Microsoft Graph.
      • +
      • Select Application permissions.
      • +
      • Under Application permissions, expand User, then select:
          +
        • User.Invite.All
        • +
        • User.ManageIdentities.All
        • +
        • User.Read.All
        • +
        • User.ReadWrite.All
        • +
        +
      • +
      • Select Add permission.
      • +
      • If you're prompted to select an account, select your currently signed-in administrator account, or sign in with an account in your Azure AD B2C tenant that's been assigned at least the Cloud application administrator role.
      • +
      • Under Manage, select Expose an API.
      • +
      • Next to Application ID URI, select the Set link.
      • +
      • Under Scopes defined by this API, select Add a scope.
      • +
      • Enter the following values to create a scope that defines read access to the API, then select Add scope:
          +
        • Scope name: API.Access (this is the name of the scope that will be used in the template)
        • +
        • Admin consent display name: Access to the Portal API
        • +
        • Admin consent description: Allows the application to get access to the Portal API
        • +
        +
      • +
      +
    2. +
    3. +

      Create the IoT Hub Portal Client Application:

      +
        +
      • Select App registrations, and then select New registration.
      • +
      • Enter a Name for the application. For example, IoT Hub Portal Client.
      • +
      • Under Redirect URI, select Web, and then enter an expected endpoint for your portal (ex: https://**solutionPrefix**portal.azurewebsites.net/authentication/login-callback)
      • +
      • Select Register.
      • +
      • Record the Application (client) ID for use in your web client.
      • +
      • Select App registrations, and then select the web application that should have access to the API.
      • +
      • Under Manage, select API permissions.
      • +
      • Under Configured permissions, select Add a permission.
      • +
      • Select the My APIs tab.
      • +
      • Select the API to which the web application should be granted access.
      • +
      • Under Permission, expand API, and then select the scope that you defined earlier.
      • +
      • Select Add permissions.
      • +
      • Select Grant admin consent for (your tenant name).
      • +
      • If you're prompted to select an account, select your currently signed-in administrator account, or sign in with an account in your Azure AD B2C tenant that's been assigned at least the Cloud application administrator role.
      • +
      • Select Yes.
      • +
      • Select Refresh, and then verify that "Granted for ..." appears under Status for both scopes.
      • +
      +
    4. +
    +
  6. +
  7. +

    Configure the required User flow:

    +
      +
    1. Select User flows, and then select New user flow.
    2. +
    3. Under Select a user flow type, select Sign in, then select Create.
    4. +
    5. Enter a name for the flow SignIn, then select Create.
    6. +
    +
  8. +
+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/concepts/index.html b/v6.0.0-beta01/concepts/index.html new file mode 100644 index 000000000..5a8f6a83d --- /dev/null +++ b/v6.0.0-beta01/concepts/index.html @@ -0,0 +1,1373 @@ + + + + + + + + + + + + +Concepts - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

Core Concepts

+

The Azure IoT Hub portal inherits from Azure IoT Hub concepts to manage IoT devices.

+

It relies on the following concepts:

+
    +
  • IoT Device Provisioning
  • +
  • IoT Hub Device Twin
  • +
  • IoT Hub Device Twin properties
  • +
  • IoT Hub Edge deployment manifest
  • +
  • Cloud To Device Message
  • +
+

Device models

+

By using this capability, the application can create logical representations of IoT devices. This feature is designed to configure a set of sharable properties between devices. +When creating a device, the user is asked to specify the device model. The application will then apply the properties of the device model to the device.

+

images/device-model.png

+

Parameters

+
    +
  • Device Model Id: The ID of the device model. + > Note: Since the device model is shared among all the devices, theID should be unique. For convenience, the ID is generated by the application. By using the API, the ID is not required, but if provided, it will be used as the ID of the device model.
  • +
  • Name: The name of the device model.
  • +
  • Description: The description of the device model.
  • +
+

Built-in models

+

Built-in models are predefined device models that can be used by the application. +This functionality is exactly the same as standard device models except that the properties are not editable and the device model is not removable via the Portal.

+
+

Note: Creating and updating built-in models is not available in the portal. They can be managed using the Azure IoT Hub portal APIs.

+

See Device Model API reference for more information.

+
+

Devices

+

Devices are the physical IoT devices that are provisioned by the application. They are represented by an object that is stored in the Azure IoT Hub as the device twin.

+

images/device-twin.png

+

Device Parameters

+
    +
  • Device Id: The ID of the device. + > Note: It is the device id stored in the Azure IoT Hub. It is asked to the user when creating a device and is not editable after the device is created.
  • +
  • Name: The name of the device model. + > Note: The device name is the device friendly name. The name is editable after the device is created.
  • +
  • Device Model: The device model that the device is based on. + > Note: The device model is asked to the user during the device creation and is not editable after the device is created.
  • +
  • Status: The status of the device. + > Note: The status is related to the Device status in the Azure IoT Hub.
  • +
  • Tags: The tags of the device. + > Note: The tags are related to the Device tags in the Azure IoT Hub. They could be defined at the portal level and set to the device for filtering and targeting for configuration.
  • +
+

Device Twin tags

+

To store additional information about the device, the application uses device twin tags.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NamePositionDescription
deviceNametags.deviceNameField that contains the device friendly name.
note: if not set, the portal will show the device id instead of the device name until it's configured.
modelIdtags.modelIdField that contains the device model identifier that the device is related.
note: if not set, the device is not usable on the IoT hub portal.
supportLoRaFeaturestags.supportLoRaFeaturesField that specifies if the device must support LoRa features.
note: if not set, LoRa features will be available on the device.
+

IoT Edge

+

IoT Edge is fully herited from Azure IoT Hub concepts. In the portal, the user can mangage the IoT Edge devices stored in Azure IoT Hub. +For more information about Azure IoT Edge, see Azure IoT Edge documentation.

+

images/iot-edge.png

+

IoT Edge Parameters

+
    +
  • Type: The type of the IoT Edge device. + > Note: related to the IoT Edge purpose tag value that might be used to create deployment manifests.
  • +
  • Environment: The IoT Edge device environment (Development, Production, QA). + > Note: this is an additional field that can be used to create deployment manifests.
  • +
  • Status: The status of the device. + > Note: The status is related to the Device status in the Azure IoT Hub.
  • +
  • Nbr of connected devices: The number of devices connected to the IoT Edge device. + > Note: The number of connected devices is related to the number of connections that are currently present in the edgeHub module. This might be different from the number of devices connected to the IoT Edge device if some modules are using edgeHub connections.
  • +
  • Nbr of desired modules: The number of modules that are desired in the last deployment.
  • +
+

Last deployment

+

The last deployment section shows information about the deployment manifest that is currently applied to the IoT Edge device.

+

IoT Edge Module

+

The IoT Edge module section represents the modules that are currently deployed on the IoT Edge device. It doesn't include the system modules of IoT Edge (edgeAgent and edgeHub). +With the portal, the user can interact with these modules and manage them (Get last module logs, restart module, etc.).

+

IoT Edge Device Twin tags

+

To store additional information about the device, the application uses device twin tags.

+ + + + + + + + + + + + + + + + + + + + +
NamePositionDescription
Environmenttags.envField that contains the Device Environment value.
note: this tag may be used to target deployment manifests for the IoT Edge
Typetags.typeField that contains The type of the IoT Edge device.
note: this tag may be used to target deployment manifests for the IoT Edge
+

DPS Enrollment groups

+

The IoT Hub portal relies on Azure Device Provisioning Enrollement groups to manage IoT Edge device connection strings. +When clicking on "Connect" in the IoT Edge details page, the user can access the device unique credentials in the enrollment group.

+
+

Note: see Provision the device with its cloud identity + to know how to configure the IoT Edge to use these credentials to connect to the platform.

+
+

Device Configuration

+

By using the portal, users can manage the device configuration and deploy to devices that are targeted by the configuration.

+

images/device-configuration.png

+

It relies on the Device Model to define the configuration parameters that can be deployed to the devices.

+

Device Configuration template

+

Under the cover, the configuration is stored in the Azure IoT Hub as the twin configuration.

+
JSON
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
{
+    "id": "<configuration-name>-<timestamp>",
+    "schemaVersion": "1.0",
+    "labels": {
+        "created-by": "Azure IoT hub Portal",
+        "configuration-id": "<configuration-name>"
+    },
+    "content": {
+        "deviceContent": {
+            "properties.desired.**": **
+        }
+    },
+    "targetCondition": "tags.modelId = '<The model identifier>' and tags.** = '**' AND ...",
+    "createdTimeUtc": "2022-06-13T07:32:19.7376998Z",
+    "lastUpdatedTimeUtc": "2022-06-13T07:32:19.7376998Z",
+    "priority": 100
+}
+
+

Please note that the created-by label is used to identify the configuration created by the IoT Hub portal.

+

IoT Edge Configuration

+

The IoT Edge configuration concerns the IoT Edge deployment manifests that are currently present in the IoT Hub. +The portal can be used to see the details of the configurations.

+
+

Note: At this time the portal cannot be used to update the configurations.

+
+

images/edge-configuration.png

+

Target

+

The parameters are related to the IoT Edge deployment manifest target condition field. +The IoT Hub portal will use the Target condition to extract this values from the deployment manifest.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NamePositionDescription
Ownertags.ownerOwner tag filter condition from the Deployment Manifest.
Environmenttags.envEnvironment tag filter from the Deployment Manifest.
Typetags.typeDevice type tag filter from the Deployment Manifest. Expected value for IoT Edge LoRaWAN LNS is LoRa Network Server, otherwise the value must be Other
+

Enrollment groups

+

The IoT Hub portal relies on Azure Device Provisioning Enrollment groups to manage IoT device connection credentials.

+

For each device model, the portal will create a new enrollment group with symmetric key attestation. By clicking on "Connect" in the device details page, the portal will show unique credentials to the device for the corresponding enrollment group.

+

Furthermore, the enrollment group is configured to provide initial device twin state:

+
JSON
1
+2
+3
+4
+5
+6
+7
+8
{
+  "tags": {
+    "modelId": "......"
+  },
+  "properties": {
+    "desired": {}
+  }
+}
+
+

For more information, see Azure Device Provisioning Enrollement groups.

+

LoRaWAN

+

LoRaWAN features are activated by default, providing a way to configure IoT Devices that supports LoRaWAN connectivity in the Portal. +Internally, the LoRaWAN connectivity is expected to be provided by IoTEdge LoRaWAN StarterKit. The IoT Hub portal will manage devices by modifying their twin properties to make them working with this solution.

+
+

Note: to disable LoRa Features, change the value of LoRaFeature__Enabled to false in the Portal App Settings.

+
+

LoRaWAN Device Models

+

For regular Device Models the IoT hub portal provides the possibility to manage LoRaWAN device models. +To activate the LoRaWAN features on the device model, the user have to enable the option in the LoRa Device section

+

images/lora-feature-device-model-toggle.png

+
+

Note: once activated, the device model detail adds a new tab called "LORAWAN" that adds new settings to the device model.

+
+

images/lora-device-model.png

+

LoRaWAN Device Model Parameters

+

The parameters for the device models are parameters that are stored in the IoT Hub portal and retrieved for devices that inherits from this device model.

+
+

Note: When changing the value of a parameter, the device will be updated with the new value. +In that case, user should then modify each device and re-save it to get the correct properties.

+
+
    +
  • Support OTAA/ABP setting: The device model supports OTAA/ABP connectivity.
  • +
  • Type: The LoRaWAN device class type (A or C).
  • +
  • Message Deduplication: Allows controlling the handling of duplicate messages received by multiple gateways.The default is Drop.
  • +
  • OTAA AppEUI: The device model OTAA App EUI used for the device during the OTAA Join procedure.
  • +
  • Sensor Decoder URL: The Sensor Decoder URL that the network server should use to decode frames comming from the devices that inherit from this model.
  • +
  • Device Connection Timeout: Allows defining a sliding expiration to the connection between the leaf device and IoT/Edge Hub. The default is none, which causes the connection to not be dropped.
  • +
  • Support downstream messages: Allows controlling the support of downstream messages. The default is false.
  • +
  • Preferred receive window: Allows setting the device preferred receive window (RX1 or RX2). The default preferred receive window is 1
  • +
  • RX Delay: Allows setting a custom wait time between receiving and transmission as specified in the specification.
  • +
  • RX1 Data offset: Allows setting a custom data offset for the RX1 receive window. The default is 0.
  • +
  • RX2 Data rate: Allows setting a custom data rate for the RX2 receive window. The default is 0.
  • +
  • 32bit counter support: Allow the usage of 32bit counters on your device.
  • +
  • Frame counter up start value: Allows setting the frame counter start value for upstream messages. The default is 0.
  • +
  • Frame counter down start value: Allows setting the frame counter start value for downstream messages. The default is 0.
  • +
  • Frame counter reset value: Allows to reset the frame counters to the FCntUpStart/FCntDownStart values respectively.
  • +
+
+

Note: for more information about LoRaWAN properties, please refer to the LoRaWAN StarterKit Documentation

+
+

Commands

+

The devices commands are pre-stored frames that the user can add to the device model and then will be able to use on the device detail page to launch to the device.

+
    +
  • Name: The command name. This name is only a friendly name that the user can set to understand what the command is supposed to do.
  • +
  • Frame: The LoRaWAN frame (in hex) to be sent to the device.
  • +
+

LoRaWAN Devices

+

LoRaWAN devices are accessible from the IoT Hub portal for devices that inherits from the LoRaWAN device model. +The LoRaWAN tab shows the device details.

+

images/lora-device-details.png

+
+

Note: By selecting the correct device model on the first tab, the portal will automatically take LoRaWAN settings from the device model to apply on the device.

+
+

Concentrators

+

images/lora-concentrator.png

+

Concentrator Parameters

+
    +
  • Device ID: The Station EUI for the LoRaWan Basic station.
  • +
  • Device Name: The friendly name for the device.
  • +
  • Client Certificate Thumbprint: The client certificate thumbprint used by the Basic Station to authenticate to the LoRaWAN Network Server.
  • +
  • Region: The LoRaWAN region used by the Basic Station (EU868, US915, AS923 and CN470 supported).
  • +
+

Concentrator Tags

+

To store additional information about the concentrator, the application will use the target device to extract values:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NamePositionDescription
Device Nametags.deviceNameField that contains the Device name.
Regiontags.loraRegionField that contains the Device region.
deviceTypetags.deviceTypeField that contains The type of device. Expected value is LoRa Concentrator
+

Command Execution

+

To execute the command, the device should have joined the network. The message below explains that the device have to be connected to the network ant commands are disabled until the device is connected to the network.

+

images/lorawan-device-not-joined-message.png

+

Command execution flow

+

The schema below explain how the command execution flow works.

+
+sequenceDiagram + User->>+IoT Hub Portal: Send Command (DeviceId, FrameId) + IoT Hub Portal->>+LoRa Key Management Facade: POST /api/cloudtodevicemessage + LoRa Key Management Facade->>+Azure IoT Hub: Invoke Device Method to Network Server + Azure IoT Hub-->>-LoRa Key Management Facade: Cloud To Device Method Result + LoRa Key Management Facade-->>-IoT Hub Portal: Send Cloud To Device Message Result + IoT Hub Portal-->>-User: Command send result +
+
+

See https://azure.github.io/iotedge-lorawan-starterkit/2.0.0/quickstart/#cloud-to-device-message for more information about the Cloud To Device Message involed in the LoRa WAN device commands execution flow.

+
+

Automatic device configuration for LoRa WAN

+

When modifying the device model, the IoT Hub portal will automatically create a new Device Configuration that will target the IoT devices that have the corresponding modelId tag.

+

The IoT Hub portal will create a new Rollout deployment that will remove older configuration and add the new configuration.

+

This process ensure that the devices twin will be updated at scale by the IoT hub and each devices that inherit for the model will be updated according the model configuration.

+

The configuration will be created with the following schema:

+
JSON
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
{
+    "id": "<model-name>-<timestamp>",
+    "schemaVersion": "1.0",
+    "labels": {
+        "created-by": "Azure IoT hub Portal"
+    },
+    "content": {
+        "deviceContent": {
+            "properties.desired.AppEUI": "<The Device Model OTAA AppEUI>",
+            "properties.desired.SensorDecoder": "<The Device Model Sensor Decoder>"
+        }
+    },
+    "targetCondition": "tags.modelId = '<The model identifier>'",
+    "createdTimeUtc": "2022-02-28T20:29:39.128Z",
+    "lastUpdatedTimeUtc": "2022-02-28T20:29:39.128Z",
+    "priority": 0
+}
+
+

Please note that the created-by label is used to identify the configuration created by the IoT Hub portal.

+
+

For more information see Automatic IoT device and module management.

+
+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/dev-guide/conception/diagrams/index.html b/v6.0.0-beta01/dev-guide/conception/diagrams/index.html new file mode 100644 index 000000000..537c4605e --- /dev/null +++ b/v6.0.0-beta01/dev-guide/conception/diagrams/index.html @@ -0,0 +1,976 @@ + + + + + + + + + + + + +Diagrams - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

Diagrams

+

In order to better understand the needs of the project, here is a use case diagram regrouping the current use cases of the project.

+

Connected objects

+
graph LR
+    A[End user] --> B(Display the list of connected objects)
+    A --> C(Add a connected object)
+    C -->|Extend| B
+    D(Import a list of connected objects) -->|Extend| B
+    E(Download a model) -->|Extend| B
+    F(Export the list of connected objects) -->|Extend| B
+    G(Delete a connected object) -->|Extend| B
+    H(Go to the details of a connected object) -->|Extend| B
+    I(Search for connected objects) -->|Extend| B
+

Connected object models

+
graph LR
+    A[End user] --> J(Display the list of connected object models)
+    A --> K(Add a connected object model)
+    K -->|Extend| J
+    L(Delete a connected object model) -->|Extend| J
+    M(Go to the details of a connected object model) -->|Extend| J
+

Connected object configurations

+
graph LR
+    A[End user] --> N(Display the list of connected object configurations)
+    A --> O(Add a connected object configuration)
+    O -->|Extend| N
+    P(Go to the details of a connected object configuration) --> |Extend| N
+

Edge connected object models

+
graph LR
+    A[End user] --> Q(Display the list of Edge connected object models)
+    R(Add an Edge connected object model) -->|Extend| Q
+    S(Delete an Edge connected object model) -->|Extend| Q
+    T(Go to the details of a model of Edge connected object) -->|Extend| Q
+    U(Search for Edge connected object models) -->|Extend| Q
+

Edge connected objects

+
graph LR
+    A[End user] --> V(Display the list of Edge connected objects)
+    W(Add an Edge connected object) -->|Extend| V
+    X(Delete an Edge connected object) -->|Extend| V
+    Y(Go to the details of a connected object Edge) -->|Extend| V
+    Z(Search for Edge connected objects) -->|Extend| V
+

Concentrators

+
graph LR
+    A[End user] --> AA(Display the list of concentrators)
+    AB(Add a concentrator) -->|Extend| AA
+    AC(Delete a concentrator) -->|Extend| AA
+    AD(Go to the details of a concentrator) -->|Extend| AA
+

Tags

+
graph LR
+    A[End user] --> AE(Display the list of tags)
+    AF(Add a tag) -->|Extend| AE
+    AG(Delete a tag) -->|Extend| AE
+

Now, here is a diagram representing the multilayer technical architecture of the project.

+
C4Deployment
+    title Multilayer technical architecture
+
+    Deployment_Node(api, "Server", "API"){
+        Container(controllers, "Controllers", "C#", "They are used to route HTTP requests, they call the methods of the services and they return the content of the HTTP response as well as a HTTP code.")
+        Container(services, "Services", "C#", "They are used to define the business logic as to call the methods of the data access layer for example.")
+    }
+
+    Deployment_Node(bll, "Application", "BLL"){
+        Container(iservices, "Services", C#, "This package represents the interfaces of the services.")
+    }
+
+    Deployment_Node(dal, "Infrastructure", "DAL"){
+        Deployment_Node(uow, "UnitOfWork", "UOW"){
+            Container(repositories, "Repositories", "C# and EntityFramework", "A repository represents all the data management methods of an entity of the project.")
+        }
+    }
+
+    Deployment_Node(domain, "Domain", "Domain"){
+        Container(entities, "Entities", "C#", "They are used as object representation of tables in a database.")
+        Container(irepositories, "Repositories", "C#", "This package represents the interfaces of the repositories.")
+    }
+
+    Rel(iservices, services, "dependency", "")
+    Rel(repositories, services, "dependency", "")
+    Rel(entities, services, "dependency", "")
+    Rel(entities, iservices, "dependency", "")
+    Rel(iservices, repositories, "dependency", "")
+    Rel(entities, repositories, "dependency", "")
+

Now, to better understand the technical architecture of the project, here is a class diagram representing it.

+
classDiagram
+    direction LR
+    class AdminController{
+        -String value
+    }
+    class DashboardController{
+        -String value
+    }
+    class DeviceConfigurationsController{
+        -String value
+    }
+    class DeviceModelControllerBase{
+        -String value
+    }
+    class DeviceModelPropertiesController{
+        -String value
+    }
+    class DeviceModelPropertiesControllerBase{
+        -String value
+    }
+    class DeviceModelController{
+        -String value
+    }
+    class DevicesController{
+        -String value
+    }
+    class DevicesControllerBase{
+        -String value
+    }
+    class DeviceTagSettingsController{
+        -String value
+    }
+    class EdgeDevicesController{
+        -String value
+    }
+    class EdgeModelsController{
+        -String value
+    }
+    class IdeasController{
+        -String value
+    }
+    class SettingsController{
+        -String value
+    }
+    class LoRaWANCommandsController{
+        -String value
+    }
+    class LoRaWANConcentratorsController{
+        -String value
+    }
+    class LoRaWANDeviceModelsController{
+        -String value
+    }
+    class LoRaWANDevicesController{
+        -String value
+    }
+    class LoRaWANFrequencyPlansController{
+        -String value
+    }
+    LoRaWANDeviceModelsController --|> DeviceModelsControllerBase
+    LoRaWANDevicesController --|> DevicesControllerBase
+    DeviceModelPropertiesController --|> DeviceModelPropertiesControllerBase
+    DeviceModelsController --|> DeviceModelsControllerBase
+    DevicesController --|> DevicesControllerBase
+    class ConfigService{
+        -String value
+    }
+    class DeviceConfigurationsService{
+        -String value
+    }
+    class DeviceModelPropertiesService{
+        -String value
+    }
+    class DeviceModelService{
+        -String value
+    }
+    class DevicePropertyService{
+        -String value
+    }
+    class DeviceService{
+        -String value
+    }
+    class DeviceServiceBase{
+        -String value
+    }
+    class DeviceTagService{
+        -String value
+    }
+    class EdgeDevicesService{
+        -String value
+    }
+    class EdgeModelService{
+        -String value
+    }
+    class ExternalDeviceService{
+        -String value
+    }
+    class IdeaService{
+        -String value
+    }
+    class LoRaWANCommandService{
+        -String value
+    }
+    class LoRaWANConcentratorService{
+        -String value
+    }
+    class LoRaWanDeviceService{
+        -String value
+    }
+    class SubmitIdeaRequest{
+        -String value
+    }
+    DeviceService --|> DeviceServiceBase
+    LoRaWanDeviceService --|> DeviceServiceBase
+    class IConfigService
+    <<interface>> IConfigService
+    class IDeviceConfigurationsService
+    <<interface>> IDeviceConfigurationsService
+    class IDeviceModelPropertiesService
+    <<interface>> IDeviceModelPropertiesService
+    class IDeviceModelService
+    <<interface>> IDeviceModelService
+    class IDevicePropertyService
+    <<interface>> IDevicePropertyService
+    class IDeviceService
+    <<interface>> IDeviceService
+    class IDeviceTagService
+    <<interface>> IDeviceTagService
+    class IEdgeDevicesService
+    <<interface>> IEdgeDevicesService
+    class IEdgeModelService
+    <<interface>> IEdgeModelService
+    class IExternalDeviceService
+    <<interface>> IExternalDeviceService
+    class IIdeaService
+    <<interface>> IIdeaService
+    class ILoRaWANCommandService
+    <<interface>> ILoRaWANCommandService
+    class ILoRaWANConcentratorService
+    <<interface>> ILoRaWANConcentratorService
+    class ILoRaWanManagementService
+    <<interface>> ILoRaWanManagementService
+    ConfigService ..|> IConfigService
+    DeviceConfigurationsService ..|> IDeviceConfigurationsService
+    DeviceModelPropertiesService ..|> IDeviceModelPropertiesService
+    DeviceModelService ..|> IDeviceModelService
+    DevicePropertyService ..|> IDevicePropertyService
+    DeviceServiceBase ..|> IDeviceService
+    DeviceTagService ..|> IDeviceTagService
+    EdgeDevicesService ..|> IEdgeDevicesService
+    EdgeModelService ..|> IEdgeModelService
+    ExternalDeviceService ..|> IExternalDeviceService
+    IdeaService ..|> IIdeaService
+    LoRaWANCommandService ..|> ILoRaWANCommandService
+    LoRaWANConcentratorService ..|> ILoRaWANConcentratorService
+    class ConcentratorRepository{
+        -String value
+    }
+    class DeviceModelCommandRepository{
+        -String value
+    }
+    class DeviceModelPropertiesRepository{
+        -String value
+    }
+    class DeviceModelRepository{
+        -String value
+    }
+    class DeviceRepository{
+        -String value
+    }
+    class DeviceTagRepository{
+        -String value
+    }
+    class DeviceTagValueRepository{
+        -String value
+    }
+    class EdgeDeviceModelCommandRepository{
+        -String value
+    }
+    class EdgeDeviceModelRepository{
+        -String value
+    }
+    class EdgeDeviceRepository{
+        -String value
+    }
+    class GenericRepository{
+        -String value
+    }
+    class LabelRepository{
+        -String value
+    }
+    class LoRaDeviceTelemetryRepository{
+        -String value
+    }
+    class LorawanDeviceRepository{
+        -String value
+    }
+    class UnitOfWork{
+        -String value
+    }
+    class IConcentratorRepository
+    <<interface>> IConcentratorRepository
+    class IDeviceModelCommandRepository
+    <<interface>> IDeviceModelCommandRepository
+    class IDeviceModelPropertiesRepository
+    <<interface>> IDeviceModelPropertiesRepository
+    class IDeviceModelRepository
+    <<interface>> IDeviceModelRepository
+    class IDeviceRepository
+    <<interface>> IDeviceRepository
+    class IDeviceTagRepository
+    <<interface>> IDeviceTagRepository
+    class IDeviceTagValueRepository
+    <<interface>> IDeviceTagValueRepository
+    class IEdgeDeviceModelCommandRepository
+    <<interface>> IEdgeDeviceModelCommandRepository
+    class IEdgeDeviceModelRepository
+    <<interface>> IEdgeDeviceModelRepository
+    class IEdgeDeviceRepository
+    <<interface>> IEdgeDeviceRepository
+    class ILabelRepository
+    <<interface>> ILabelRepository
+    class ILoRaDeviceTelemetryRepository
+    <<interface>> ILoRaDeviceTelemetryRepository
+    class ILorawanDeviceRepository
+    <<interface>> ILorawanDeviceRepository
+    class IRepository
+    <<interface>> IRepository
+    class IUnitOfWork
+    <<interface>> IUnitOfWork
+    UnitOfWork ..|> IUnitOfWork
+    ConcentratorRepository ..|> IConcentratorRepository
+    ConcentratorRepository --|> GenericRepository
+    DeviceModelCommandRepository ..|> IDeviceModelCommandRepository
+    DeviceModelCommandRepository --|> GenericRepository
+    DeviceModelPropertiesRepository ..|> IDeviceModelPropertiesRepository
+    DeviceModelPropertiesRepository --|> GenericRepository
+    DeviceModelRepository ..|> IDeviceModelRepository
+    DeviceModelRepository --|> GenericRepository
+    DeviceRepository ..|> IDeviceRepository
+    DeviceRepository --|> GenericRepository
+    DeviceTagRepository ..|> IDeviceTagRepository
+    DeviceTagRepository --|> GenericRepository
+    DeviceTagValueRepository ..|> IDeviceTagValueRepository
+    DeviceTagValueRepository --|> GenericRepository
+    EdgeDeviceModelCommandRepository ..|> IEdgeDeviceModelCommandRepository
+    EdgeDeviceModelCommandRepository --|> GenericRepository
+    EdgeDeviceModelRepository ..|> IEdgeDeviceModelRepository
+    EdgeDeviceModelRepository --|> GenericRepository
+    EdgeDeviceRepository ..|> IEdgeDeviceRepository
+    EdgeDeviceRepository --|> GenericRepository
+    GenericRepository ..|> IRepository
+    LabelRepository ..|> ILabelRepository
+    LabelRepository --|> GenericRepository
+    LoRaDeviceTelemetryRepository ..|> ILoRaDeviceTelemetryRepository
+    LoRaDeviceTelemetryRepository --|> GenericRepository
+    LorawanDeviceRepository ..|> ILorawanDeviceRepository
+    LorawanDeviceRepository --|> GenericRepository
+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/dev-guide/index.html b/v6.0.0-beta01/dev-guide/index.html new file mode 100644 index 000000000..ae3943455 --- /dev/null +++ b/v6.0.0-beta01/dev-guide/index.html @@ -0,0 +1,1229 @@ + + + + + + + + + + + + +Developer Guide - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

Developer Guide

+

Directory Structure

+

The code is organized into the following directory structure:

+
    +
  • src: Source code
  • +
  • AzureIoTHub.Portal.Server.Tests: Unit test project for the Portal
  • +
  • AzureIoTHub.Portal: The Portal project
      +
    • Client: .NET 6 Blazor Web Assembly project that alow to visualize the IoT Hub data
    • +
    • Server: .NET 6 Web API project that provides the API for the Portal
    • +
    • Shared: Shared code between the Client and Server projects
    • +
    +
  • +
  • templates: contains the templates for the "deploy to Azure" button
  • +
+

Overall Architecture

+

This schema represent the various components and how they interact to have a better understanding of the various solution elements.

+

images/overall-architecture.png

+
    +
  1. The user is authenticated by the OpenID Connect server.
  2. +
  3. The user access to the IoT Hub Portal with the OAuth2.0 token.
  4. +
  5. The IoT Hub portal uses the Azure IoT Hub REST API to retrieve the data.
  6. +
  7. The IoT Hub portal uses the Azure Device Provisioning Service to manage IoT Edge devices.
  8. +
  9. The IoT Hub portal uses the Azure Storage account to store the device models configuration (Images, Commands, etc.).
  10. +
  11. The IoT Hub portal uses the LoRa Key Management Facade to send Cloud to Device (C2D) messages to LoRa devices.
  12. +
  13. The LoRa Key Management Facade uses Redis to store its cached data.
  14. +
  15. The LoRa Key Management Facade uses the Azure IoT Hub REST API to retrieve the LoRa device keys and send C2D messages.
  16. +
  17. The IoT Hub portal synchronizes its data with the IoT Hub to provide a consistent view of the data.
  18. +
+
+

Note: For more information about the LoRa Key Management Facade, see the Azure IoT Edge LoRaWAN Starter Kit page.

+
+

Prerequisites

+

The following should be completed before proceeding with the IoT Hub Portal development or deployment in your environment.

+

Before getting started, it is better to master the tools below:

+
    +
  • Azure platform and Azure IoT Hub. A tutorial can be found here.
  • +
  • Blazor WebAssembly and Blazor Server. A traning is available on this site.
  • +
  • Docker. An introduction to containerization is available on this page.
  • +
  • IoTEdge LoraWAN StarterKit. Have a look at LoRaWAN Starter Kit to get more details on this OSS cross platform private network.
  • +
+
+

Once you know the basics of these technologies and tools, you must follow these last steps to set up your working environment.

+
    +
  • IoT Hub Portal uses containers to work correctly. Docker is required to launch this project (version >= 4.11.1).
  • +
+
+

Once you have download Docker, you must install the WSL 2 Linux kernel. To do that, please refer to the official Microsoft documentation. You can choose the linux distribution of your choice, for example Ubuntu.

+
+
    +
  • Node.js is used to run JavaScript code in the portal. You can download the latest version here.The minimal version required is 16.17.0.
  • +
  • You must have an Azure subscription. Get an Azure Free account to start.
  • +
  • An Identity provider supporting OpenIDConnect protocol configured with 2 applications (API and web) is required to login to the IoT Hub Portal. See Azure AD B2C Tenant with applications configuration page for example.
  • +
  • To develop, you can choose your own IDE or text editor, for example Visual Studio.
  • +
+

Secrets

+

Secrets are used to fill in the login credentials to the cloud platform. You have to enter them in a json file to be able to connect to the IoT Hub Portal. Here is a template of a such json file :

+
JSON
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
{
+  "StorageAccount:ConnectionString": "<CONNECTION_STRING_STORAGE_ACCOUNT>",
+  "StorageAccount:BlobContainerName": "<BLOB_CONTAINER_NAME>",
+  "OIDC:Scope": "<SCOPE>",
+  "OIDC:MetadataUrl": "<METADATA_URL>",
+  "OIDC:ClientId": "<CLIENT_ID>",
+  "OIDC:Authority": "<AUTHORITY>",
+  "OIDC:ApiClientId": "<API_CLIENT_ID>",
+  "LoRaRegionRouterConfig:Url": "<LORA_WAN_ROUTER_CONFIGURATION_URL>",
+  "LoRaKeyManagement:Url": "<LORA_WAN_KEY_MANAGEMENT_URL>",
+  "LoRaKeyManagement:Code": "<LORA_WAN_KEY_MANAGEMENT_CODE>",
+  "LoRaFeature:Enabled": "<TRUE_OR_FALSE>",
+  "Kestrel:Certificates:Development:Password": "<DEV_PASSWORD>",
+  "IoTHub:ConnectionString": "<IOT_HUB_CONNECTION_STRING>",
+  "IoTHub:EventHub:Endpoint": "<IOT_HUB_EVENT_HUB_ENDPOINT>",
+  "IoTHub:EventHub:ConsumerGroup": "<IOT_HUB_EVENT_HUB_CONSUMER_GROUP>",
+  "IoTDPS:ServiceEndpoint": "<SERVICE_END_POINT>",
+  "IoTDPS:LoRaEnrollmentGroup": "<LORA_WAN_ENROLLMENT_GROUP>",
+  "IoTDPS:DefaultEnrollmentGroup": "<LORA_WAN_DEFAULT_ENROLLMENT_GROUP>",
+  "IoTDPS:ConnectionString": "<IOT_DPS_CONNECTION_STRING>",
+  "PostgreSQL:ConnectionString": "<POSTGRE_SQL_CONNECTION_STRING>"
+}
+
+
+

Note: You must replace all values in the brackets by your own Azure settings. If you can't find them in the Azure Portal, please contact an administrator of this project to have more information.

+
+

This json file must be added into your project solution. To do that, click on the AzureIoTHub.Server project in Visual Studio and select Manage User Secrets from the context menu. You can now add your secrets inside this file.

+

You are now ready to start your IoT Hub Portal development !

+

IoT Hub Portal Configuration

+

By deploying the IoT Hub Portal, the user can configure the IoT Hub and the LoRaWAN network.

+

Since the IoT Hub Portal is deployed as a Docker container, the application settings can be configured with environment variables.

+

Application settings

+

Here are different settings that the user can configure:

+
    +
  • PortalName: The name of the portal (shown in the App Bar and the Page Title).
  • +
  • OIDC__Authority: The OpenID Connect issuer.
  • +
  • OIDC__MetadataUrl: The OpenID Connect metadata URL (e.g. .well-known/openid-configuration).
  • +
  • OIDC__ClientId: The OpenID Connect client ID for the Web UI.
  • +
  • OIDC__ApiClientId: The OpenID Connect client ID for the API.
  • +
  • OIDC__Scope: The OpenID Connect scope that represents the portal API.
  • +
  • IoTDPS__ServiceEndpoint: The IoT Device Provisioning Service endpoint.
  • +
  • IoTDPS__IDScope: The IoT Device Provisioning Service ID scope.
  • +
  • LoRaFeature__Enabled: Whether the LoRaWAN feature is enabled or not.
  • +
  • LoRaKeyManagement__Url: The LoRa Key Management Facade URL.
  • +
  • StorageAccount__BlobContainerName: The name of the Azure Storage container where the device models images are stored.
  • +
  • IoTHub__EventHub__Endpoint: The IotHub Event Hub compatible endpoint.
  • +
  • IoTHub__EventHub__ConsumerGroup: (Default value iothub-portal) The name of the consumer group used to to pull data from the IoT Hub (Automatically created by the Bicep/ARM deployement)
  • +
  • ASPNETCORE_ENVIRONMENT: Built-in environment variable, used to target the configuration provided by a specific environment. Two accepted values:
  • +
  • Development: On this environment, logs are produced up to Debug level.
  • +
  • Production: Default value if ASPNETCORE_ENVIRONMENT is not set. On this environment, logs are produced up to Information level.
  • +
  • Metrics__ExporterRefreshIntervalInSeconds: (Optional, default value 30) The refresh interval in seconds to collect custom metrics and expose them to the exporter endpoint.
  • +
  • Metrics__LoaderRefreshIntervalInMinutes: (Optional, default value 10) The refresh interval in minutes to calculate/refresh custom metrics values.
  • +
  • Ideas__Enabled: (Optional, default value false) To enable Ideas feature when set to true.
  • +
  • Ideas__Url: Url of Awesome-Ideas, to publish ideas submitted by users.
  • +
  • Ideas__Authentication__Header: (Optional, default value Ocp-Apim-Subscription-Key) Authentication header name.
  • +
  • Ideas__Authentication__Token: Authentication token.
  • +
  • Job__SyncDatabaseJobRefreshIntervalInMinutes: (Optional, default value 5) The refresh interval in minutes to collect data from Azure IoT Hub (Devices, Iot Edge Devices...) and store them on the database of the Portal.
  • +
+

Connection strings

+

Here are different connection strings that the user can configure:

+
    +
  • IoTHub__ConnectionString: The connection string to the IoT Hub.
  • +
  • IoTDPS__ConnectionString: The connection string to the Azure IoT Device Provisioning Service.
  • +
  • StorageAccount__ConnectionString: The connection string to the Azure Storage account.
  • +
  • LoRaKeyManagement__Code: The LoRa Key Management Facade code.
  • +
  • PostgreSQL__ConnectionString: The connection string allowing the connection to the PostgreSQL database.
  • +
+
+

Note: For a production environment, an Azure Key Vault is advised to store the connection strings.

+
+

Optional Security Settings

+

There are several optional security settings that the user can configure. These settings are not required for the Portal to work. By default the Portal is configured to set security levels to Microsoft.IdentityModel.Tokens defaults but the user can override these settings.

+
    +
  • UseSecurityHeaders
    +

    This boolean adds the following headers to all responses :

    +

    X-Content-Type-Options: nosniff

    +

    Strict-Transport-Security: max-age=31536000; includeSubDomains - only applied to HTTPS responses

    +

    X-Frame-Options: Deny - only applied to text/html responses

    +

    X-XSS-Protection: 1; mode=block - only applied to text/html responses

    +

    Referrer-Policy: strict-origin-when-cross-origin - only applied to text/html responses

    +

    Content-Security-Policy: object-src 'none'; form-action 'self'; frame-ancestors 'none' - only applied to text/html responses.

    +

    The default is true.

    +
    +
  • +
  • OIDC__ValidateIssuer
    +

    Validation of the issuer mitigates forwarding attacks that can occur when an IdentityProvider represents multiple tenants and signs tokens with the same keys. It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. An application that accepts tokens from fabrikam could forward them to the application that accepts tokens for contoso. This boolean only applies to default issuer validation. If IssuerValidator is set, it will be called regardless of whether this property is true or false.

    +

    The default is true.

    +
    +
  • +
  • OIDC__ValidateAudience
    +

    Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. A forwarded token would contain the audience of the original site. This boolean only applies to default audience validation. If AudienceValidator is set, it will be called regardless of whether this property is true or false.

    +

    The default is true.

    +
    +
  • +
  • OIDC__ValidateLifetime
    +

    This boolean only applies to default lifetime validation. If LifetimeValidator is set, it will be called regardless of whether this property is true or false.

    +

    The default is true.

    +
    +
  • +
  • OIDC__ValidateIssuerSigningKey
    +

    It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. This boolean only applies to default signing key validation. If IssuerSigningKeyValidator is set, it will be called regardless of whether this property is true or false.

    +

    The default is false.

    +
    +
  • +
  • OIDC_ValidateActor
    +

    If an actor token is detected, whether it should be validated.

    +

    The default is false.

    +
    +
  • +
  • OIDC_ValidateTokenReplay
    +

    This boolean only applies to default token replay validation. If TokenReplayValidator is set, it will be called regardless of whether this property is true or false.

    +

    The default is false.

    +
    +
  • +
+

Device tags

+

The IoT Hub portal uses some tags to configure the devices. The tags are stored in the Azure IoT Hub in Device Twins.

+
    +
  • modelId: The device model ID that is used to retrieve the device model configuration.
  • +
+

Storage Account

+

The Storage Account is used to store the device models images. You can use the same Storage Account that is used by the LoRa Key Management Facade. +This solution will use tables and blob storage to store its data. There is no need to create the containers, the application will do it for you.

+

Blob Storage

+

The application uses the following blob storage:

+
    +
  • device-images: The blob storage that contains the device images.
  • +
+

Working with the documentation

+

This documentation site is build using Material for MkDocs and Mike.

+

docs/main is a detached branch that is locked and only accepts PRs. On PR merge, Github Pages will automatically update the documentation website.

+

How to update the documentation

+
    +
  1. +

    Checkout the branch that contains the documentation:

    +
    Bash Session
    1
    +2
    git checkout origin/docs/main
    +git checkout -b docs/<your_branch_name> 
    +
    +
  2. +
  3. +

    Install dependencies

    +
    Bash Session
    pip install -r requirements.txt
    +
    +
  4. +
  5. +

    Previewing as you write

    +
    Bash Session
    mkdocs serve
    +
    +
  6. +
  7. +

    PRs are gated by a markdownlint check. You should use markdownlint to lint any new changes on documentation. For example you can use the vs code extension https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint

    +
  8. +
  9. Update the documentation
  10. +
  11. Commit your changes
  12. +
  13. Push your changes to the branch
  14. +
  15. Create a PR
  16. +
+

Customization

+

Refer to Material for MkDocs documentations:

+ +

Versioning

+

Mike is used to generate automatically a new documentation version when a release has been published, using ci/cd pipelines.

+

For manual workflows (e.g. delete or retitle an existing version), please refer to Mike documentation

+

Problem Details

+

On IoT Hub Portal, we use the library Hellang.Middleware.ProblemDetails which implements RFC7807 to describe issues/problems that occurred on backend.

+

Handle a new exception using Problem Details

+
    +
  • Create a new exception which extends BaseException. For example see 👉 InternalServerErrorException
  • +
  • On Startup class, within the instruction services.AddProblemDetails(): + > Your new exception is already catched by the middleware Problem Details because its extends the exception BaseException. + > If you want override the behavior of the middleware when processing your exception, you have to add a new mapping within it.
  • +
+
+

💡 You can also map exceptions from dotnet framework and third parties.

+
+

Handle Problem Details exceptions on frontend

+

On frontend, http client uses a delegating handler ProblemDetailsHandler to:

+
    +
  • Execute the http request and wait the response
  • +
  • If the response is not successful:
  • +
  • The body of the response is deserialized to ProblemDetailsWithExceptionDetails
  • +
  • An exception with type ProblemDetailsException (including the error response) is thrown.
  • +
+

On Blazor views, http calls must be catched to capture any exceptions of type ProblemDetailsException to be able to execute any business code to process them.

+

When an http call fails, the user must be notified visually by the application: A component Error has been made to respond to this use case. +Below an example on how to:

+
    +
  • Catch an ProblemDetailsException when making a http call
  • +
  • Delegate the exception to the Error component, so that it can visually warn the user
  • +
+
C#
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
@code {
+    // Inject the reference to the Error component as a cascading parameter
+    [CascadingParameter]
+    public Error Error {get; set;}
+
+    private await Task GetData()
+    {
+        try
+        {
+            // Execute an http request
+        }
+        catch (ProblemDetailsException exception)
+        {
+            // Pass the ProblemDetailsException exception to Error component using its method ProcessProblemDetails()
+            // The Error component will alert the user by showing a (snackbar/dialog) using the content of the exception
+            Error?.ProcessProblemDetails(exception)
+        }
+    }
+}
+
+

How to install Entity Framework Core

+

Follow the next step to install EF Core:

+
    +
  1. +

    Open the terminal and run this command:

    +
    Bash Session
    dotnet tool install --global dotnet-ef
    +
    +
  2. +
+

How to create EntityFramework migrations for PostgreSQL and MySQL

+

For the project need, we need two database providers which are PostgreSQL and MySQL, which led us to review the architecture set up for the EntityFramework migrations. Here is a diagram showing the two architectures.

+
C4Deployment
+  title Architecture for multiple providers
+
+  Deployment_Node(provider1, "Provider1", "Provider1"){
+    Container(provider1dbcontextfactory, "Provider1DbContextFactory", "File", "")
+    Container(provider1migrations, "Provider1Migrations", "Folder", "")
+  }
+
+  Deployment_Node(provider2, "Provider2", "Provider2"){
+    Container(provider2dbcontextfactory, "Provider2DbContextFactory", "File", "")
+    Container(provider2migrations, "Provider2Migrations", "Folder", "")
+  }
+
+  Deployment_Node(dal, "Infrastructure Layer", "Dal"){
+    Container(dbcontext, "DbContext", File, "")
+  }
+
+  Rel(provider1dbcontextfactory, dbcontext, "dependency", "")
+  Rel(provider2dbcontextfactory, dbcontext, "dependency", "")
+

Follow the next steps to create EF migration:

+
    +
  1. +

    Go into the Server project folder with terminal

    +
    Bash Session
    cd .\IoTHub.Portal.Server\
    +
    +
  2. +
  3. +

    Execute this command for PostgreSQL provider

    +
    Bash Session
    dotnet ef migrations add "<nameofyourmigration>" -p ..\IoTHub.Portal.Postgres\ -v -- --DbProvider PostgreSQL
    +
    +
  4. +
  5. +

    Execute this command for MySQL provider

    +
    Bash Session
    dotnet ef migrations add "<nameofyourmigration>" -p ..\IoTHub.Portal.MySql\ -v -- --DbProvider MySQL
    +
    +
  6. +
  7. +

    Open the created migration and follow the following steps:

    +
      +
    1. +

      Move the using directive into the namespace directive

      +
    2. +
    3. +

      Add "_ =" before each statement of the Up and Down methods

      +
    4. +
    5. +

      Add the CGI copyright to the top of the file

      +
    6. +
    +
  8. +
+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/dev-guide/migrations/v3-to-v4/index.html b/v6.0.0-beta01/dev-guide/migrations/v3-to-v4/index.html new file mode 100644 index 000000000..62b842901 --- /dev/null +++ b/v6.0.0-beta01/dev-guide/migrations/v3-to-v4/index.html @@ -0,0 +1,614 @@ + + + + + + + + + + + + +Migrate from v3 to v4 - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+

Migrate from v3 to v4

+

To migrate from v3 to v4 manually, you have to add two new settings to the portal web app. These two settings are required to to pull devices telemetry from the IoT Hub:

+ + + + + + + + + + + + + + + + + + + + +
NameSetting TypeDetail
IoTHub__EventHub__ConsumerGroupApplication setting(Default value iothub-portal) The name of the consumer group used to to pull data from the IoT Hub
IoTHub__EventHub__EndpointConnection stringThe IotHub Event Hub compatible endpoint
+

Below the required steps for each settings:

+

IoTHub__EventHub__ConsumerGroup

+
    +
  1. Go to your IoT Hub
  2. +
  3. Navigate to menu Built-in endpoints
  4. +
  5. Create a consumer group with the name iothub-portal +iothub-create-consumer-group.png
  6. +
  7. Back to the portal web app, add a new application setting with name IoTHub__EventHub__ConsumerGroup and with value iothub-portal
  8. +
+

IoTHub__EventHub__Endpoint

+
    +
  1. Go to your IoT Hub
  2. +
  3. Navigate to menu Built-in endpoints
  4. +
  5. On the section Event Hub compatible endpoint
      +
    1. Select the shared access policy service
    2. +
    3. Copy the value of the event Hub-compatible endpoint + iothub-get-event-hub-endpoint.png
    4. +
    +
  6. +
  7. Back to the portal web app, add a new connection setting with name IoTHub__EventHub__Endpoint and with value the event Hub-compatible endpoint copied earlier
  8. +
+
+

Info

+

You can create your own shared access policy. But the portal needs at least the Service Connect permission

+
+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/dev-guide/migrations/v4-to-v5/index.html b/v6.0.0-beta01/dev-guide/migrations/v4-to-v5/index.html new file mode 100644 index 000000000..475ccae8a --- /dev/null +++ b/v6.0.0-beta01/dev-guide/migrations/v4-to-v5/index.html @@ -0,0 +1,651 @@ + + + + + + + + + + + + +Migrate from v4 to v5 - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

Migrate from v4 to v5

+

In this v5, the major change is the integration of AWS in the portal. +Some changes have also been made at the portal web app settings.

+

AWS

+

Starting from version 5, the portal now supports AWS integration.
+To learn how to deploy AWS services using the portal, please refer to the Quick Start for AWS documentation. It provides step-by-step instructions on setting up and deploying AWS resources using the portal's interface.

+

Azure

+

To migrate from v4 to v5 manually, you have to add CloudProvider with Azure as default value.
+You have to add also Azure__ prefix in all setting to the portal web app.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameSetting TypeDetail
CloudProviderApplication setting(Possible value Azure) The name of the CLoud Provider to run in the portal
Azure__LoRaRegionRouterConfig__UrlApplication settingThe Url for LoRa Region Router Configuration
Azure__LoRaKeyManagement__UrlApplication settingThe Url for LoRa Key Management
Azure__LoRaKeyManagement__CodeApplication settingThe Code for LoRa Key Management
Azure__LoRaFeature__EnabledApplication settingTo enable or disable LoRa Feature
Azure__IoTHub__ConnectionStringConnection stringThe IotHub Connection String
Azure__IoTHub__EventHub__EndpointConnection stringThe IotHub Event Hub compatible endpoint
Azure__IoTHub__EventHub__ConsumerGroupApplication setting(Default value iothub-portal) The name of the consumer group used to to pull data from the IoT Hub
Azure__IoTDPS__ServiceEndpointApplication settingThe IotDPS Service Endpoint
Azure__IoTDP__LoRaEnrollmentGroupApplication settingThe name of the IotDPS LoRa Enrollment group
Azure__IoTDPS__DefaultEnrollmentGroupApplication settingThe name of the default IotDPS Enrollment group
Azure__IoTDPS__ConnectionStringConnection stringThe IotDPS Connection String
Azure__StorageAccount__ConnectionStringConnection stringThe Storage Account Connection String
+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/dev-guide/testing/unit-tests-common-practices/index.html b/v6.0.0-beta01/dev-guide/testing/unit-tests-common-practices/index.html new file mode 100644 index 000000000..1f6edcc46 --- /dev/null +++ b/v6.0.0-beta01/dev-guide/testing/unit-tests-common-practices/index.html @@ -0,0 +1,783 @@ + + + + + + + + + + + + +Unit Tests Common Practices - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

Unit Tests Common Practices

+

Naming Conventions

+

Test class

+

The test class should follow the naming convention [ClassUnderTest]Tests.

+

Example: The test class for a class named ProductController should be named ProductControllerTests:

+
C#
1
+2
+3
+4
+5
[TestFixture]
+public class ProductControllerTests
+{
+    ...
+}
+
+

Test method

+

The test method should follow the naming convention [MethodUnderTest]_[BehaviourToTest]_[ExpectedResult].

+

Example: A method named GetProduct should be tested to see if it returns an existing product. +The name of the test should be GetProduct_ProductExist_ProductReturned:

+
C#
1
+2
+3
+4
+5
[Test]
+public async Task GetProduct_ProductExist_ProductReturned()
+{
+    ...
+}
+
+

Unit Test Skeleton: Three Steps/Parts

+

A unit test should be devided into three steps:

+
    +
  1. Arrange: The first part where the input/expected data are defined
  2. +
  3. Act: The second part where the behavior under test is executed
  4. +
  5. Assert: The third and final part where assertions are made
  6. +
+

These three parts are visually defined with comments so that unit tests are humanly comprehensible:

+
C#
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
[Test]
+public async Task GetProduct_ProductExist_ProductReturned()
+{
+    // Arrange
+    var productId = Guid.NewGuid().ToString();
+    var expectedProduct = new Product
+    {
+        Id = productId
+    };
+
+    // Act
+    var product = this.productService.GetProduct(productId);
+
+    // Asset
+    _ = product.Should().BeEquivalentTo(expectedProduct);
+}
+
+
+

Tip

+

On the IoT Hub portal, we use the fluentassertions library for unit tests for natural/human reusable assertions.

+
+

Mock

+

A unit test should only test its assigned layer. Any lower layer that requires/interacts with external resources should be mocked to ensure sure that the unit tests are idempotent.

+
+

Note

+

Example: We want to implement unit tests for a controller that requires three services. Each service depends on other services/repositories/http clients that need external resources like databases, APIs... +Any execution of unit tests that depend on these external resources can be altered (not idempotent) because they depend on the uptime and data of these resources.

+
+

On the IoT Hub portal, we use the library Moq for mocking within unit tests:

+
C#
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
[TestFixture]
+public class ProductControllerTests
+{
+    private MockRepository mockRepository;
+    private Mock<IProductRepository> mockProductRepository;
+
+    private IProductService productService;
+
+    [SetUp]
+    public void SetUp()
+    {
+        // Init MockRepository with strict behaviour
+        this.mockRepository = new MockRepository(MockBehavior.Strict);
+        // Init the mock of IProductRepository
+        this.mockProductRepository = this.mockRepository.Create<IProductRepository>();
+        // Init the service ProductService. The object mock ProductRepository is passed the contructor of ProductService
+        this.productService = new ProductService(this.mockProductRepository.Object);
+    }
+
+    [Test]
+    public async Task GetProduct_ProductExist_ProductReturned()
+    {
+        // Arrange
+        var productId = Guid.NewGuid().ToString();
+        var expectedProduct = new Product
+        {
+            Id = productId
+        };
+
+        // Setup mock of GetByIdAsync of the repository ProductRepository to return the expected product when given the correct product id
+        _ = this.mockProductRepository.Setup(repository => repository.GetByIdAsync(productId))
+                .ReturnsAsync(expectedProduct);
+
+        // Act
+        var product = this.productService.GetProduct(productId);
+
+        // Asset
+        _ = product.Should().BeEquivalentTo(expectedProduct);
+
+        // Assert that all mocks setups have been called
+        _ = MockRepository.VerifyAll();
+    }
+}
+
+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/dev-guide/testing/unit-tests-on-blazor-components/index.html b/v6.0.0-beta01/dev-guide/testing/unit-tests-on-blazor-components/index.html new file mode 100644 index 000000000..b10ecc3b6 --- /dev/null +++ b/v6.0.0-beta01/dev-guide/testing/unit-tests-on-blazor-components/index.html @@ -0,0 +1,888 @@ + + + + + + + + + + + + +Unit Tests on Blazor components - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

Unit Tests on Blazor components

+
+

Info

+

To test Blazor components on the Iot Hob Portal, we use the library bUnit

+
+

How to unit test component

+

Let us assume we have a compoment ProductDetail to test.

+
Example of the content of the component ProductDetail
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
@inject IProductService ProductService
+
+@if(product != null)
+{
+    <p id="product-id">@product.Id</p>
+}
+
+@code {
+    [Parameter]
+    public string ProductId { get; set; }
+
+    private Product product;
+
+    protected override async Task OnInitializedAsync()
+    {
+        await GetProduct();
+    }
+
+    private async Task GetProduct()
+    {
+        try
+        {
+            product = await ProductService.GetProduct(ProductId);
+        }
+        catch (ProblemDetailsException exception)
+        {
+            Error?.ProcessProblemDetails(exception);
+        }
+    }
+}
+
+
First you have to a unit test class that extend
1
+2
+3
+4
[TestFixture]
+public class ProductDetailTests : BlazorUnitTest
+{
+}
+
+
+

Info

+

The class BlazorUnitTest +provides helpers/test context dedicated for unit tests for the blazor component. It also avoids code duplication of unit test classes.

+
+
Override the method Setup
1
+2
+3
+4
+5
+6
+7
+8
+9
[TestFixture]
+public class ProductDetailTests : BlazorUnitTest
+{
+    public override void Setup()
+    {
+        // Don't forget the method base.Setup() to initialize existing helpers
+        base.Setup();
+    }
+}
+
+
Setup the mockup of the service IProductService
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
[TestFixture]
+public class ProductDetailTests : BlazorUnitTest
+{
+    // Declare the mock of IProductService
+    private Mock<IProductService> productServiceMock;
+
+    public override void Setup()
+    {
+        base.Setup();
+
+        // Intialize the mock of IProductService
+        this.productServiceMock = MockRepository.Create<IProductService>();
+
+        // Add the mock of IProductService as a singleton for resolution 
+        _ = Services.AddSingleton(this.productServiceMock.Object);
+    }
+}
+
+
+

Info

+

After configuring the test class setup, you can start implementing unit tests.

+
+

Below is an example of a a unit test that checks whether the GetProduct method of the serivce ProductService service +was called after the component was initialized:

+
C#
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
[TestFixture]
+public class ProductDetailTests : BlazorUnitTest
+{
+    ...
+
+    [Test]
+    public void OnInitializedAsync_GetProduct_ProductIsRetrieved()
+    {
+        // Arrange
+        var expectedProduct = Fixture.Create<Product>();
+
+        // Setup mock of GetProduct of the service ProductService
+        _ = this.productServiceMock.Setup(service => service.GetProduct(expectedProduct.Id))
+            .ReturnsAsync(expectedProduct);
+
+        // Act
+        // Render the component ProductDetail with the required ProductId parameter
+        var cut = RenderComponent<ProductDetail>(ComponentParameter.CreateParameter("ProductId", expectedProduct.Id));
+        // You can wait for a specific element to be rendered before assertions using a css selector, for example the DOM element with id product-id
+        _ = cut.WaitForElement("#product-id");
+
+        // Assert
+        // Assert that all mocks setups have been called
+        cut.WaitForAssertion(() => MockRepository.VerifyAll());
+    }
+}
+
+
+

Tip

+

WaitForAssertion is useful in asserting asynchronous changes: It will blocks and waits in a +test method until the specified assertion action does not throw an exception, or until the timeout is reached (the default +timeout is one second). 👉 Assertion of asynchronous changes

+
+
+

Tip

+

Within unit tests on Blazor components, you can interact with HTML DOM and query rendered HTMLelements (buttons, div...) by using +CSS selectors (id, class...) 👉 Lean more about CSS selectors

+
+

How to unit test a component requiring an external component

+

Some components proposed by MudBlazor (MudAutocomplete, MudSelect...) use another component MudPopoverProvider to display elements. +If in a unit test that uses these MudBlazor components, the MudPopoverProvider component is not rendered, the interactions with these components are restricted.

+

Let us start with the following example:

+
Example of the content of the component SearchState
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
<MudAutocomplete T="string" Label="US States" @bind-Value="selectedState" SearchFunc="@Search" />
+
+@code {
+    private string selectedState;
+    private string[] states =
+    {
+        "Alabama", "Colorado", "Missouri", "Wisconsin"
+    }
+
+    private async Task<IEnumerable<string>> Search(string value)
+    {
+        // In real life use an asynchronous function for fetching data from an api.
+        await Task.Delay(5);
+
+        // if text is null or empty, show complete list
+        if (string.IsNullOrEmpty(value)) 
+            return states;
+        return states.Where(x => x.Contains(value, StringComparison.InvariantCultureIgnoreCase));
+    }
+}
+
+

We want to test the search when a user interacts with the MudAutocomplete component to search for the state Wisconsin:

+
C#
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
[TestFixture]
+public class SearchStateTests : BlazorUnitTest
+{
+    ...
+
+    [Test]
+    public void Search_UserSearchAndSelectState_StateIsSelected()
+    {
+        // Arrange
+        var userQuery = "Wis";
+
+        // First render MudPopoverProvider component
+        var popoverProvider = RenderComponent<MudPopoverProvider>();
+        // Second, rendrer the component SearchState (under unit test)
+        var cut = RenderComponent<SearchState>();
+
+        // Find the MudAutocomplete component within SearchState component
+        var autocompleteComponent = cut.FindComponent<MudAutocomplete<string>>();
+
+        // Fire click event on, 
+        autocompleteComponent.Find("input").Click();
+        autocompleteComponent.Find("input").Input(userQuery);
+
+        // Wait until the count of element in the list rendred on the component MudPopoverProvider is equals to one
+        popoverProvider.WaitForAssertion(() => popoverProvider.FindAll("div.mud-list-item").Count.Should().Be(1));
+
+        // Act
+        // Get the only element present on the list
+        var stateElement = popoverProvider.Find("div.mud-list-item");
+        // Fire click event on the element
+        stateElement.Click();
+
+        // Assert
+        // Check if the MudAutocomplete compoment has been closed after the click event
+        cut.WaitForAssertion(() => autocompleteComponent.Instance.IsOpen.Should().BeFalse());
+        ...
+    }
+}
+
+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/images/architecture.png b/v6.0.0-beta01/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..db8fe765185c0a977b1019b46c98bdd6c4809c99 GIT binary patch literal 58933 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 z≀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 E51LCJApigX literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/awsdeploy-designer.png b/v6.0.0-beta01/images/awsdeploy-designer.png new file mode 100644 index 0000000000000000000000000000000000000000..d7cd59d826612da3ad443f6b78b6ed35c2273f2b GIT binary patch literal 353206 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%0DF>p?85 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/device-twin.png b/v6.0.0-beta01/images/device-twin.png new file mode 100644 index 0000000000000000000000000000000000000000..b27f540bcb4ae6b85e4dcbccc75fbeeb02171c9e GIT binary patch literal 54297 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 literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/edge-configuration.png b/v6.0.0-beta01/images/edge-configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..fda6260d62a035bc81628fc3caf2ab4a8531acbc GIT binary patch literal 39539 zcmeFZcT`i~w=WtM3nHRKKtaF)LArDS>7tZSq<4@KLXGrJ6h)eViUJ8Gh|)WuNEZQ- z9;A2az4wyj?ttIl@0>Btd*l9b-??{;clXf2-r1|nHP>8oe&$?r?GSacI zN=1c78X(X)I}qq}$%WIvFFd+Z-+@1;Tr{4@f^yq$&I1o*)-ozGAW%Uh#nH2~z%%)C z1$`F~=yDzD|EWeqx+U-ha9k3iQO;%F59Nj&L>6z5rA~Ehs*c(egA| z#uHtxc_gm-?5yrG$8MgF5B5QRb3&Ghm|Gyr*=8TxyD!>Pa$TJ4EgBJ;(c^QpY`}z%jd_qIQir|ah;u=85tS-Y%s}JR^|}W z#DYLCexcB4dPc?`ax{5nbjJo8d~$NqV|5fyI9yfPjH!QZ!uh@Rq&?8p4gBudSe1{5 zudlBI3!Fs%+FHJi&ps5l{a}N-?f%SiBcH$tGo-aHQBeT}`s^Sw4D|H;l)ORYrJ?u9 z^--UY`D!nvbr7uttCw=yQgF?UqWNnZ1DPreZ ztaG6-L1uyZvrx^G*ZDAcVHp8(op&J>Hz8CM2e}tE-QS_!)wM!?30^oUVy7tx7K}39 zj}2~lcKUu0c@u5h+nM`dw^;pySlG!FnNfzC1;8{onWOC4AzKHbTTb^hsn`NsLD(Q-yJsjMw2dz0Bi=uD*>YGL}!U<2YzZqia6J{PuzO5 z2j+d0Hpf0neJ1uc4P(lD#ytCC*_aAv%{N(#TBC-b=EmlR*}bz`WUnhI1$&9qg)v@>Hi*U%g-AAGVF^Uuk% z$q3x&xif(cqGFcxT>CSWJJzHuMEA%dj0pY`780yj#`a~tj7##7K-dY*FD{n60fa_Y z)KxNNl7rDW@TWBu)59y8h8r2y6vX*k@GxMEE{w2eCq$}e-1(3+|6B>D|EWD^ zc(1i;ec;u3s(M!#aVY34dq0>ELLS;wej8oQjlSIJs_dEt1&dNr9@jNf(a!=T0CQ6e z^;_oCj!BJ7U|@=Ep;FHtLoXP%GLS+akIj%C4?v`6#s=cbOyx zh(lMw$0SV-M$9}}&MnEfedZ?=AM&h@z+lts$@9@<)J3SK?(vGY_0~1cN+d3R<|bMx%)+GzoonK0IuDxAOh`n+C4Cbjd?HS?$J%jbXna_Aw`Wnw z%`MM%6Y+|{ zRl#-Zn~svh#U$gt@omjAOLj(y&~388Zo^n$Y%qFf`oXpeG0CB7guN@Qm+QO7J}**y zhl)fLxTVqYjT$7%|hE`%O(v zMm!=34>aDn=io50?_(2UZEB0-BbmaH8>OWf{P=Q>-|AweEmj{i->JJ?2aFn+Wyzgz zf`N`K2d8yGF?IV8#~Jd$iFf~Wkc>(y>q9IIVWuV3=%$P~57+>zIbh2sE$rZ;jv(Sp z5YTScxTWNj*XhmOMw6Jd&*AZV21wq)CA|$oE^%RakC^ww9q;W6HGMJvyR3h7_{fOR zoVQxNk$rQck>QO8p|0OyS9sGq_7CQ=<4=F_JK_}P#bpQtrgi1WPH5`Qcxp`za(Z#q zb$Ifup!~+Svl;5Sa_x>&^&>~0kn~}mpd9EdRb>X7gOnNZO%5n!-KO3K&E#0sOr}FvCWcZ^@LYjgLYW+z1!qFi2DBa_BmXXt8s*Q7=aW*#GM>QQ7R zPB2kf9(a$Ra5LQ5dvVECmb$1csK!os(~mGP&MnrcFS6k+Bduu?AbixUTv&6!AbNYX zQrM-qjpdd1yw*2}wd+K#N%{F2&E;Y3yfLtGjTi2ZoOJN8@b{#Dj3h9LF;KOAW23)jc|tHl z>Kxbn6S)qN;To~=OQH{V%0q|5G$^no(lf>PWe#V$jcG20`z|F42#I?QHg!j%lbXog z<54%`&|ZQPc(@~>GtkGGr(^6e!RPnDaH;N2W*Hf;mGONUtJ>iji8RPJ$FG{KuYM1g zLNpCM^2Q_>JNgpaKX!Sn)H>neEmbRDxaHn5_G$VIvk4H@rS4%f{3Z-Hh5UAxzvFeM zzIh-;J|8MP3lr`lat>^!nEEYGTT%TKPmGc9NZg`*^)KEekS)JY1`F<9hEM(=@=iyV z(r(ZGw4RW!H4Hlh3(&Z@uf7o$5O6=LX(n5yW1e-jb8BfczXyvzdpXWLpDq5Q|I{Ul zIV-AcRCMz712JXqolzQIH#9Hl6D}-cgLc(TddQF{c)E5igN`lfrcY-mHw<`V<#Q!@rhHT_nC+ z8r<$SkX5~SGh9n&MxQuM2%hKp&4m4ICph0xjd9#uv{+#n z52LlMO;ZUtw&UMzLk$9EOn!)FFx8^kU^OFypEYyj@!U^*A%uEpL-w|uXis3gMPun# zI!scy-@`lLC|uaZ^I9xZiQL*OO$O!xsX^qTGN_eH?X}rL}3J+5({6X6`j9cE0 ztQtyDq?l3t*KEN8cK+190*sxQ7zZtaAXNp-mj=?&w?yIW7v7^oHAFDLo?uw;&tOQ~ zktCQn9v+VTRJL}DOQt2Fn(*Z<)V(@73TeA5NoK3c^AE&2CXV*nClVXVZjppVXX$ga3;00sqlxsF4xP;p z><%*?ZO-|PfN5D_hvHU-O$W8(9kCS5AN9BNL%X9j#9xAhjW{DsUT2=hEJA&%&o5Mzd1DBSA|j-7ZsSW@q))H4q6*bHD96gR^LkfYlXT}7Yz*PCnU|E zcUmA@?#(fzD!uvqRZb(3TQe9!0&Ng@vLc7fVHAAo%Wz*Bfe%}?(vFp?++2#}?;vik z@$N>BqJ3GSf3*$@h(}k}EY_f(FYMPa4Qwy27c`FCR`v-Xb1+G)a^tVq%+vP8KKnMm zx@x*FCYXd;KX=%PQy#*m)g0)kt*w)z*Z#zH5$`9v?Ss_qxN-@gBlqwoH&2dpA0O>(ePZwxND5Eerc~E@X|mvLe;HN@1rqr5ZpYK zko5phj{XOWtk1`l;kDPiHEQFN-F7`jjVq6p0Vq?x8}MgPDE3+X_yfh$$fHSSW_(X> zz-z#=IR@|8+l?DW9)htXf$UYI#&t|wqcjAQ4~i^E8s#Ac*Ta39#$O>Mb?9^@iCODU zQt6Icm8J>N3V`f^i#j`>@*U}#`neIq$F99L3OfKm=I?fyllEvS*Vy3Yf#t>J(=fhk zn}HAAG|Mh;3%+2^V;D?c2|%p;*by1XB2+}3xSm?!a0nc5Q?J!UMnqhuq)h3Ww@c#z zTKxysbJO2K-=@b#Qwz$B@FM$^XRe|)c=l@AXe4V-#+qac_;zt|ae#ZLimS%&3;|wm z=+pW&AgEL2wK>z1rTZjK?4oln%>h_|`gq8sHFzcbs>*MGk!kS!V_4^V`=qt>`*yrC z;BaA7l*YTHGAi(uFTvxhBNZOA?Fn{$xqkjLKjIVaDO5z`)mmj+6-bb})qo97!F)Ff zEQke#68^@b)L$mQOClFTIRj8i2fn*H)<@@j`O>9f-(6FR(|J}zF!qYT@0jPI`V}HF zhT>EcWG5W{9Lxeg5G;BU$%I#wh|o0s#s2sP14D(+?n;hfDPgZsia^+{so5PH<^5F| zy{-l|`Zp1R->Y703PJ_d1V1Q0IN@z?v=AnVoIsZIM^@F3esFE=xmW^WB8->Er1Alw z)Q9B$?t`Ofz;pmH)YvYzq>yuayyIJJ@YMOsc&oqMJq`G=D)*bB08l9MsEd5?M;9*F zxWaw9`BR7F;nHG_U*0XE_YWyP89seJC%&*iHoye6g?EstO8*V6$dNcf=)w`c`W`Nq z?)#dIQ98J~y29aeKf@Vby?T|QweTa5!oyTl{apa}z8X{sst(opXJliiR0O33_`m{xi~cXH{jt#Mp|R_`5eU(s=c=tR*}TR&Djo9^eaJ)D3XF&358lg0i`L?-1*QfmSIQF(FN%Az>t^9*nEcmOpbb z@%F9Q8L`$Me|e~pGY;^O{iDW`V3Dt+l&Gkvq@<*nnD_3=$WSR_@e21RCDy1Wm)Ul| zojf9DXo#xyNNSAh*Du+>VWR6#-||3`Ck2jK{Fn59_#6CYjs+f|n(_Kcb&#`ahMg$> z_8>s)@A)leA|NnF<5V#`#^uk)f7B2UYcOJN3%{k9Rcds%BpD+Kq{M&nv>A+W`sKHx})&~bF#Jdkvun$iC4c|~243VSF3hxD7&fF@F z$6~Pp0s@Y~Kp5@~++0iqFb{x}s1Z@uQsOK8qgSHwpS{v1nAM-CiHD@1SU&zN~EXVkJ zpcg=fg5U><@Bw>wPtU!bLC5G3u+?5>#_1_t=rsFYskQYpsthsd! z5pt^DOiUbnH?*_iQT^Ags*d{l2Cn+IN9!mv`fE_!zoT~mj3S5RIpiI&hg>{g1xt<7t zR^>flo|;l_LW&KpB+s{qGC%aZl`1SLnXC2~Sm3$sosJ{rZj(R5UB&Rzr<2n>l`kb> z1^7ZGx1rES$BUvDxt=QRdlKZkLP-+SC{^|q7ttC`*RLsZMTi=_P7pjQDyqy#6{aNdf$nicH7Tj)c8S$3r#C z2?Ojz>{lgr+T^y@R^KeBipun+R{{`ooV&;U(Nme~3ox+c_I5HpnF)d8DlgIjX9p5n zskCp>=@s2x;@Vz(|A~v5qDz;c)QBm@wdB_l^nSQHbn=9k`MrcT?qw4eQ)9*XNKq_F%;j@`bE9oBqgOaeJfIP~A~{W&&33W{z* zR-CUrvI%>7C7vAi`?7$=34Pgq+V7KWAj8hFb9OIr(hkooXZWLBVo@iQ+~UZ*C({MR zO=BA;-Phn)#r~|SynUyA4GHa8@x;E@knI@0;;~S{Iq4(p-h`4rcT6(=shyhW`UQDK5lWm zz#>^HHW{7pK*UZgW~LB|s=Q+7M#BPcagYg^!NjPtUXv2{Iu9`hE}-S89KLa^?oTy{IJ?AVrLt7Ic?ht{gQ&gEn4eJx|KI| z+!V|5Hl+idkHOZb#DK(9f9@tnwyY0j+AZr?ZfD0F_5n7GB#h@;u^q!uUMwoC*2vrF zMmp;0#{$ctUIQTmu4?R%;NXqyRc{Yj?svvR-EIjLPG1;QAB=@ z-VohF&b%){OV(uAQv%bG<=T!(nvUXLMVf9e$wuExNw# zdoK^Xe6w|?ZFtgn;Y@5oYZ_7$k(;e0Km{Tn&-3$HZzCrTw*etZ9F4A>V2-msF#;>;>%j}_h2h(xO2M= z*(wP)MCe+!1r2n%6bI;q^eiF~FUlZ?yHuD`)n7^hq+rOP728S7)F@F}pzqfB7;iA7`u z)gYJ+?lQ2#t@`U^+w_VXpm$o;8KIKpxR;QdQYwZ_vxjQ;BX@1tfSuL+ZzUXUefzP8F{TJ3J(UKSG84+YEu`Q5Y z6hr91;-m_rA{b+{@4DOW35966FZY&A#m-l4k*QptSGNBURn#X^WV~dvu4c_OP$J)! z14(?)+qa@35Sv7fVnW=Z(=ayVTFm+CW#^r*X>GdzvkdHvjcw>PD3&hRYhNjH5gz^x z77VJY&Rt(l-1_Qo{c_$?Ib3__y>P+_pY2S0Sm0S57~IH0_GIp}zdr(wV)OMy8za*( zcaDSvL0zZju*YpaColDs6>vIAE9O2?@ zoV#ki(u?Z2+M_GvgY?n?CEgnuz2UYQc;S-N;n(&&L-@?l_5j;m&sWE#UIgEkF+2mX zL1pH-5zofY-mj9Y_WT)ViuICGSY z+arZ@T_dOL3PMx!FfiLoPN_JP&wv+p=>D_e{!RsK_-H#ZI;VZxr+7QWV*V)JpUr3| zR_QZ+xd5s*-C9nh*3Yne4=_9QE2QdLu}Y9g9`{#!P~#NFr#9qR<&p6*!_;|Kk; zV2P65GEK%|ULQU2j&?MYvfk)f@Oft-c=nSJqdD-Gzd#KHP~6 z_J+KNLOV0@k_*jBRlY*S+foR%2$YACZybfC7$!H9Di<9Up^-O3ZFJAX=Fhw zW?_KxNozMhMlj=1styJ|1>=b}E}eWnW(J9CpR!c@^jq+z`{45`W0kb-X&;D;<|bOZ zR&yqQWpYLan<3#mvlE^BRy8%A^ZaD{TUyAA42eQ^H|B*?ttd_Y`p(Xdt%27|uI+;c z6B`ErBC+44EnXvt2L$r9RAflx#59n1n;&k+Ggah&=H|1GXKjzI=iU5#vDifD6dIM` zGe2#Vs$AUbuZanu6KlH<3&C4g(9F+ANkyp(xJ)Xa3`D3WHVGwA5`QG$v|Y(@D5^V) zYE2<1yzj2R|LW5>-;USf+s31>p?5Uq_UPZzy2#7#wsp3{bN`*UVv%hUZEb>G z5j`|e^`qsv_Z{GSA~IR48yMSJU;n_{`jR6Vc{JR977vao&EIjljK2D|{0BdsORi@2 zbg~ae^o^x;T_;IN8H!Y4nPNCl~#tTs~~scy}h#40##Q0dP!3$$6euMn&oZ7 zd!Zy0-Ik)6R&H1l+Zc@wyUARW-#{&ht#o5f-In-Mnf6?)&Atro&86;&rg-i5nF8a> z@j&Daw$znYQitZ4kVmRC5cp<>hju15_%PrsKV1}I??*oFiO4w#Nf{R&*{wUb+dK?3 z;Q^^?4TW}7tkE;VM+ZC>40h9QAFIXlxShO4-c*13$oK^MMrT6@j*|4UHL+70bfp0F zQed26`SdV}rY;_UQF5A5t>+VzAFyu5zwDRv`i+>g}~J8EXCRK zyUWeGMKw;H6KAkp7^=RX069I>ZIfu4;k8S2Mzms9ha9~{JF2y!O91|D&kDyZ|86l| zNS5yc9nMOKO0*hPBhoI$wFVLU1G(S3qrO5feto%#synb99IR&-=v`7UHMdxfh$?ph zV$}ldy9J5uUu5k@I$U@>c2xGq2izjPxY&>B4t|>n#cAcI)bX}NG}yLg9Yn~?+C+Rt zDd!?8ZZthxDHwAtgnujyCUY3Ax?QCOc45*~A6hWt$>i-2tW0?hnG%<1j=yg;aQ5@) zv4$kS3z6fbkq>tT(o4FV#oy=XG7<#(n6UXNzj-#3I^Jpaw<+5z7DVO`2UhDyeO{tC4zryTnR==fG3*3BQQ-C=jxEVQL$h9($4GUYE8Ai0>)d z9imdgDS#|h_RPC7aV_qMf*kZg$*7iCl%Kd-Jb2mk}4nu)S?*7b##+Fx+W`2ySjXh9f#y*E`{p?8kk)=rXJ4@dj5l4*nzyK5 z$KlY8>E`I7WHV)Bem=ET_tc>2E zOE9-BHXQok=$G=-PJ(r;hgGL*yvXH_VP;REfokfY$~KMKP375HehF_e5-jXMX2`6V z8-Ah3Gvu0L7=lt0OT<;BWG5YUx;5^N~FJ}vvAQc3RRh&TyC0I48U$zv6P=!y9ofBFIhsi ztJCw%9Zb_pwcM8HAle!y$9!-v+R6J3Qdip78^Z9BYj+1zx&?l-wwS7{UDT>bf_3_ZId2WqL}(3h!r z)<5WgK>4uuNs6xyEoNAX%e1nL`*2sVZV4iO!p{bBVy2b#c^Ar+nlSdxPt-iR55}6e zg+t$K6l&5$ZuIE_@+>45EpawpI_Hr*OUJOsxhQ;t*~WALSx&yKQoNhm92!8_2>;6N zNuizc-Qjl#QJRG8758}OCsBxfo(JkN^!9yeAt^&52Vn(99a+&ln_BGsb4NEh(ynf5 z$ce57_S^-5(qSy{=4l;6Ym;P8YV8C<-W;zTyNkT_cx1uGC8R`ocEOTI+sChl395L7 zeL(&7GU@MJd#L!`D?)lbR3S!MEb7B9?!HX_53)89?+tE|1^%g3w8;&td1ihZq&{m_ zML_AW{soh})8g)nG$V%27S+=1_tKlhxi>q2g(-bUMsunR=9W-u`IHrzqGg>N(!TWG zyEK#2gtvK2m=0G=KMiar>iJx3VZvyT5BjFsMfJGy=W%fELa;AAIb)N~j{dGZ)g7mX zPBKR12^FIvxf!6OW!S7iNsg|J(a&HbSIAU7VCfn8V}iA5q@oIaHawBxS#_^59Qj}l zuaHIPHWs*71L%N3Y&V&Mq{{rRhf_d@T{NZcEbfDDGZ{*Mp zO(x98K0s%c8DN)IRi*;4&t5o^H>jiHXNcfPP)ze4TCn5tQ7$F&%`QY+SBpDAcZ5Pz zS7*CEY$vA|+HZ2T`wEZjI#wC?r80F+@ov-p(T@j#lI}DWru~tGPpBnu?8K6(82_@# zh_iTbdR<2*fOdncot{lyb5g=405W>`DB5O0KfVxZM`JbUub=t}iktEq&VG}-Wyxc@ z#^sjSKn{{F&O8o8q(!n$EIN3thHbB>Mtmjgcivs~OI;a$_N%$+;d@OlXw`#g`ym6) zG{=E;OetHVt0^)=7rrAKmOeX}7pDpc{KeZXiDz9EH@}f6+BZteGpDFG1e}O>Y96a^ z8@0l9DvI0KlUqI25|hZw!W_cOp;_yp-#-B1mL)T5zi^{D$5M&Msac~Xrc@8{fM(Wu zm8tl5EAR#D?UMv05J>5N^<73N+46W@(3vx5(tus7vmoi|t3LM%Fw{Pr*s;@z!nSN6 zY1S|9KQyo6$yDsM%opiz+(5;}2>?DqI*U0K>yD;5LjHEJlJqheDE)c2swYP>CW-RW zrC^m7U^_@XqkdFr2@5^Hwxuq93e-zx%a&aT>V7<<0<|Jc6bG0t^j(U7!hgCe&k@VxbYKkz7w(1iuF>cLB zM0;mFt_F_{jP#8|;G<+hqFoZ~UAKQOIN02a{bR-VMp;e%oNaZ%j0@cmy*eE29n`Eg23*z5zgSfbPIl}AynZ!E z{vV{~PY968V?P#G96i#V#?OXI%0V!=u7*JBgv6bGR?rRnsgAuVT?Lr02B|HMD%U3? zlRz?|R+fX%j`t~D+ein8J`r)wZ=qd4gq)_GvyW4*rdn~|Ky|op=BNqMV!N$s49pbu zf1U(jrfyX@KG}7fEh-G~K^faSz2dOQ=S~fJcPeJYyJ3sgcal~O=jhg}zioUs6Y+Th zh+pYe(R7t1@C~rJ6t-+wJ%iliy#VAfzPKpA{JMt(=cH52Fo8L@_bJ2X7oZ%c#{aAsm$8`^W5syk~xIz%CxvjTK9M%rVmX# z3iHqI$}k+|SFbE%SNw1bk*`_dKrovgkoWAX-Ku&jBo9IB;*Neg8DJgTcztQp5+2MB z3%2>tT0`9WiCn5QMFW%xuLe%60{7@|{aAG1Ay>OA;>Ygu4j`(}7f4d=ydB<~tng!eY@y&i5T`Dq~3d*C^tHz>gy0cf4xEB|R$|Ib!Q z|L@d=`UkilY|WRIi2|p6q*DNM@L%X@K+nH@`!*H;&>Wxo4MY5*=Rt`~fW`QZmR^3X zO^ZLaEP$@3jiaqeJq_ZB>X!?_e>^F9_Mt?#DquCAEWb{>b3l&1C7k*4<*5R<1VHa^ z1WSDES9^Lo*_mWDIBpb!6GH*?aO`q}Ua;Q%|I8TvuQsm#``Zig4~QPLpy|XV2-N}n z%YKSnXC_!|OsuMqA{aW4Y2sfACv>PS)KtH=>LEgwU1zLkTWHUtR%H zZ_K8(JOYFPXJ|C@5Qj>=)IDKbsC?Px#N%NTX!2NeXi<&lQ`9Fo+vR9i9BX*-y=Si+ z8mca}M=cKxbUR0EjsUQ@8AwVyX)%!0qLkD(DVRiG1{;SdLgN&gp5Fiq9zh8)tqh3T*DO4|V+jZ^@$nz`-&(*UcMPk=Bo3)^n=3pMZC?x%Zsz+1mcYlAKB z5fv)Rs)B*5Vmow&+e$KfG9wWL`eVbcfFqLyz{v|M-R%?bU;a+>v5h0O4xrjhquEjt z5)v>qqb7FTW?9ckgYMym{;e@B4*+w~o27}1OJJg3F`M-P5LPTxqxYRnY7jraxvxmX z_*Ah0le>>_1p{3?6iWCLs($;2$H~b1B7fcXLi)H7R zp?IhW{G4=WA6%4?aRWcWOXQy+c1Zy4bG~IyVp1Edt7(_PUfjujaO){aD|{dP1A%L5 z3J|-9TXYzvRd60LkGPm8iQgh-9RjlZr%Br@AlkN=+s99{&y7e9KTSeddJL|>88Pfs z!x*VFQN;jbQzw~8D z)u#ajP#u(hzf%oYe=6hw|Be3wtREkq)Jg?VIDq*l^6UR2Ob05zP@)F(_SSq?yx%!c zy01Bcbw@uH7zW@50J_9|p__g4BIrf)Pf1{XfYPD=m~2u3tA9{7DOZEzUoaMUP)GfP z-GPS}&Htbi61TPfg;#-xB!1H2I(7DbYtlGA{R_zh5C69-fCqr{1F+(Mo`LKKGs(`dYAgvnUUn}*=YY->Q z(Q##=Ckx1wWn^YHWgs`;i2;t+;emw7j(AZZvo&G0`mmkrX=nP0wq0kTa?OLqs0?SN9I zpTW4-z)2!9#^mth-0_iWzr$4Lzs2<+Vov3LhdVeNZf2OR$xs1Tb|@4g_YZ5X{gXBH|H!T+XCNmd zx(Cf~{8=N%{G9~r`BR{z;Ni09gPep{U8Def(sjTNv~c-k*HZVEQnsTco0kSe90qFQ zi|oq4fC{+V13T_4cRQbsK+D3?DyJ`2KmuAu7aPgn za|3LX9*jdKE6b<7aO|PD-9g)|Hv=~(E%=GJd_DlB4M%yF5 zM|a9Kubyj>G)=h<#r^!?U}!guzzVI`^C3Q5j!FtSz;1^+8r+g;Ffs2;P!kD*|{`hr9EXj}kLyau=$c8Jzq_w5AT2(veyj7C(CoU($=} zC7uESrj1M7Pw;n1-cu7^n}teJyc!SFP4jI0YFt*mTw>K%x&w)-%GsWn-l>jX!psk{ zgqFP7(M(0&ARiny8+t6-lt|H3T_m9ZFubWJ|iz6UNY`VTmSFG zX3O)Df(^r++WIz-L;qI~^9vW}gOE({htHO}TZkM2mYFU&C*Aj(GCm!c#=W~eFe zDK);sEvfPY>UPf|G`D|<h}h2;GKU!J@#f-*6p<-Qv=!i*GP!Je@U7w5jHrm!3BvS&ba z7Z4FA+GS-4(?X z%en8R&!TF6+c@H~_NfJD%Ws<&&T!8k9esUELGj=V062pNpVV8vo>8j^#Z%lIb_!l$ zLP_=)aEI(zG`)49Mji5c6);8#d=At$CB$qf(-4)4Gc5~&QI@H9F?KiA0n-V^$m1LJLap&YXp3Q(gtzbh%-Q9m<1Pu^|G=?uL zdSl&@gtH(nx@~oIKcTiYh+kS@w&~g--GgtF?`B}wR}v7v{KdhZCi@hyV3`F+q7X=} z%}BB=t(UAhS!|sZj*T(2h#q;)V*HJUtRz^&ZhPsMSqFle;}v#MtQ*J%zj(~&X(bm9 z@uA;W1WGg48`KD0=R-{!P`)i07qnA!k@Z^MCde_tp4!N=yzq}5bi?<)-Xb<*6l2G% z-OkSQGS7b4*r^Ny&I#Wg7oKO>P?*?j1A@+63~uh5E-ETJdqX>U_ zqOuvsZ@U~VS3uTQR)t0?VllrCmwWM5*Cht9d7~w9txZ=! zFQx^2+K=`==jI9iAfCMpftPEJm`KE}s01UY-SlP-V=DV201Qqelbz)(F*Z8tQrj&W z?a-_2NAEwBVJRkpkt&wUZ5(~Y8=oVM$tlBfda-f}Gr6sX4c7Asu|JhW6&vI%Gk|Ty z=M{qq?GnIeaRATjg%$1Ix~9YxC8D&!b+e4dl$MGJnuk1oTmw5F7AjJ57Dv3<*yB2o zoum0C+he0Wg!1eyE#e=+hHr*F2~taXbwd&qOtmKOk}_nUURo9u_Tj%86SGrKFIGM@ z5=6!Y#SM?+l{unk_3rQ(!UxtwVz;lDc-^uOvCIO|vO z7mQ^m7sn(?06v-?U-Co#JkX=l3_`L6=Ae6k?gF53kOjvr^ZxX!p)_Zt%Sdh;=;2Mx zQ&;OAhpT5_2Q?pKo@Tl9hn{_O z>Hm^M;?m1NepD+;z}lN;J>clnSq0qMb-5?PhO1j~5upOETh_fRU*|8d4iT|m}9@eU<$|v_ihF*y0M=mM@LDpu+XI$jfoLw$kbvbECzZx=-2`Ievzo z>H}PcC(M3ZVWvkDpN`KvUH^V5bU_E$fxe_K%&hOb-&ZrV(a%t_BIfV#qml-8R4=^P zAh#k_L!~NWSi;*iKjv^KPN&?P?VkTl|4~^NF`{_MMz@n}d33)DSz6o6{CjL!%&BY3 zgls=t&wX?LeCm+XB#y$|)~e?VAOSC|9tS|eZuoc*p;|kiC(h{a6lH}{7lqh8K~FAP zHn3$*oQaVQGZ%t}-(=a5-3(cyg!9#9Ukmtf`U}Rs7$f?;%~hLM=MucCstUr*sdx$Y zSeoXpjG+Pq4*7^e(H|WBfenrJ8s2fPc3NZ8+002%x{rg*gI=^IuFtEjmT$}PsNhfP7EMcPZ&lI6*utESL z|Gn!`fUvi(-I9bp5U-)p79t~kY z4S$~KV?;>R0gvr0o|+XAG7U(*v=pX~h}R)U9da7|>BACqh8%_DKVIK!&@K7t@4WVA zA%5-?Tl&10nvuldkt{T#l4o?-Zt$*Mmucc05{dQw0_i8Rt$&lMq=*&=>t1#|%&@P( zcg?6x@0$`dXCEnwIGM+lc2~=L3c6(uILCQ3CHyLRrQ3Qw3GF&JC){~QpT1c&DoJIl z23zaDj|)dViR4)>$uXX7ps?8L(#@u$Y8lwBv2gGw&YAG(KdmwzV9=B@w-b>}$AXh@ zY%mNQH0vw|%9Y<3{O(iG&uM77)$`?Z8~BZP4mKN1$jdXl zSuc@;zFYXdO0WGxBrbb*Nh5Ly>gwN8zK9Q)!SWOw(s9M!03V*n(H8q{hgkw8&19Cyi_IRM5TakK`@I zYbcuUv}FW$t0lG%tjjOTjnPeIi9!BHd+!z1)Vu!sT0liaq=|}%BE2J0BOpi-rH9a) zfPl0}?;xNkU3%|GNr2Eh0hA)WcL)fCPC^eMlr!VMSX=s27Xsh2&ovPHKt>$G|6_z}{y;)Rh1Y&2A^w@uIy~i&s z5G_f^dxRdsiQg1han&(D-O=gc+DPs0lMV_?#~FL#QPAol)3j*Ii8harSx`L=Mg z{S%BuVa+5WL>!zUQnTatB1~~pkwqD4E?G`!fH5v1ER-)X!5OHcgMMaV=10$F`$%+7 zu@lQ)6+2XjNjjHw$kVwO6_eo`Z{A{>3(0y}zvi0f%Jpvsi?SB3(N9-`d#f6^J{Rkq zp!?|gzw~}ZCPi6v9td@eZDF(o)9L6)9B#4*Mx(>gOgdRE&y|kXjc0u9q3X)s`TvFxM6p>06ISp+5Lz|AeL-Y#dyC} z$n(`g>%d5M!JuCNZ!+IoT!byiW2+@*4eAoZ?D`GZM^bNEQ1sr$;C>}@;|Rcql!`^0 zX=lCuwsoqHtUE*=2PxlrCSZS-O16#@lJaG_e!X@7kv?c&0Qc~m@zf&l_Gu5w>!^LC zC%XW|nl#?#!a8bp0`zHJr-9c>3`c8dK2rj>8Lk}<5d3Fgi+zK=CXvy{ziM3O@8?}M z3TlhkYGfpIMGV3VPnztNQ0LLCFir^jmYZ)mED|c)W&%+IB_K27y~$+rjHf1f%JmnXc_ z9C)BI;KgZJfE{rd^Bb-o6WvgZJVPo?+x)DnKpqa7ThAI+iqa6qpQ^tefX$Seb|`Y> zR#aDqqybq8Cr67BRKcE;<}HbqCNi@Oko;h(=W5bH;-7EEGGT4lYqK3(*QvC;0n|Go z;UjeRM+mur-tTb^JSFdvq5PN`Onu*AUQ|FZ^9sAHpu%YetE+L}UU^2!s6t$LCC-;iZt^b6B z&L(QzE6?a0=`m6re_y-_*Y*GphU}eXpRUjNC{?tK3(-uh)qXQi@J#P)qh%;~vDWjU zd3C2~j59sF>;3ck6_Z}lLmb2yX-|yH-hM+Q`pI=qFwqm~rQwaZbjeLqNGclibk6xB z>b^qOwe9y*vR#4OS2B!~R$TGRXnGq@DfLcZAG5EA3^OLt&tPdkRJ|ZENG;-J(Z=;* zY>)34C=TP@p>IaqF>YC@b)QIlSjzZwQ)Q1m*AkZcM)W>Pp%9v*&}X--P^Zd@*KaNa z2);FdN$h(|?OvUnmCUrW`a_fGkZ@J&V51=O?TWJ>lin)4&`g)r>e0@dsur{C1=Eq0 z-M6kX&Wp3A<8VxHWzqb!z1F44G?Nb@7~ZCAbDSm<<}0{0jC=t@UN7Omh!iQz0P9_B zPGPK;XCq~;uIsiVCaL_KzL96BZ?L>-k`3oqg;!B;vW|qaE;c3eafFeud%`QD2AwM}L_{lP<6$`N5b z;1q2p-~?nt>1=rXoG$G&`n0(WrXofwUlxzkGF8ZeI7Dzhpqdtb%)*8XFB94|;X;@X z9i$|gmMFmXXnT9BXwEC+L+%S?kM}*Al76`2X$n()B#s=#D@@|$ z>>dRZo(a0^J+BS*!08vdmo?!bN>Qn~SN7UtXCi(Qn9xYc-|T?Q_^}9ZR=da{W8}9A z55l=V8gqS)C38S%y$t8fEf8Q=a`FI4%t;}p*^P*5L9O=(AMu9h$dr@f2$`edT-TOX zsaTh=?k4PJ-i*DHa>Qns zXdZ!BqTSeyg6)I!G|OE+Ct|k4%O1nDSE;wTO$Su5)^s!06j!|35;O)1xXlx2D%z=@ zpU0~&fXLVb7>pjl)1GV?8pCx4?gLKT(ZczPXHqy`w}%#tkprhn)vrQ}3E5NMGej}O z!6fBiE!MV;4N@Y};1`1iVbol9edj|kf^oCxfnp=)oBQX`Ob0i2gI_URc?~R`A3S7Z zg{{xSZ7W=p8|}vNaLhyWDw4W$af_D*AFy6Zmp7+sk?!qWqO7<*WT$78lfkkOkuMj4 zzo|MWv#*Yudr?}%^6|EA^N~BQV!PQ+dq^scP5Xd3#lQY&7xUqnh-3D1cTd4aPoA*` z|M&5!%iSI}L8_`oS1#Q#cc!ZFsa=T%mCf5bxJ{~-P&rX=&dcP15Cf+3{(roewou-q zgN#Xy+uNX=DK%C-TM3Unr}89h82P%)IZ&GE#1)*mnjCh2EnX9N-(XHlLK?gu&#M?o zMSb$H)!4C$xDVgbh(*WQnPE9xmf zwh!ZjPn>bFw$oPo4znUh(Y?LUk=m6HwDpS5CYTUliO@B4_OXnBJ5L?HstemdUz)b2#qnHyHY7gDh}aikT~^I&*b|A&()5 z+DXx^x3}1DUgcGx*b;7g8CjC?+V}psdu#%<)@$?&)ACug?X=+l_zqcl@|;`m+uS#! zUy;18eI8pSEqozREv{DXSs+9iqD~T3d671mh%!pE*`sz;BZ~FT$vt#yqr3a)tUB<{ zim#FRBzqiR)Eu?!X-mp8*ySgsp{Sc+OMVp+ZD2cO(wp0n(w|!1NxX%e`|#6oHzZMX_=RWnt^yp%aqsr-eAG??5hm6u}{BJ zLr{gMAR&d#{v{fUzK4=?^-|)#FB@WTU8g%jjbG`+PO=WV)CON3Oe0XFx^`+JCA{W% z-w!d>>smN68itn+2)5kD4O%bfv~hOmfVJ(I@Y?sS$?d5~zb9&WeTuUp^#obZUzoQJ z5`MEKEZE;H*yUxfyGW?a*&%1r>d4O7tYhRd9uT;;j;vA9L`&G|!zz^#f%_7YY?8%4 zDWweV5O!Ov7ft2|{m6wnaAYD%S1vVcPZBB3MH$Ub5C%uc@LqCQg)7Lqtk;vOIhVHQ zUL$?6A%3hR-_C?@Vu=mSzKZxrqcVHqGr6)RTTXpS%{LU>og*7=jJQsXv<4YXlnQHr zplK5arq!u_{jK8(Ks|NsP$JtdiRbP+t5umSyJ>sKqfSQKjX}?>7f}W<*7< zhX}3*seX`&CEX>adi7QI>g~=%SihbxC}PQA`e2a@Lh2nG%e28T?K@tzP5sIq9I;@_ zS#{-iFlTYvi^mcZ%N8l!&fdfEv|``N)?qezToeHKN~-D*Ur|{mfH;cC9u1 z)D1oz*laiPy?6U(t8uRAwqXw_mHX(bmgOGN9ILx!HJ0O35a)G6r$?WgaI{aD{n^AN zy?<4Rp0%s3oVi?7MZ8e~pM*b}TbCs0Y5zS)+mg6_mG@>JRsp46N<=Px8sCW#b3}Q}3+xEyYWo^}V5Q4= zB*a0MI-$nuvEK3Eh5E`X(TIb6`D@`>2boYlU%n>++*Ic7)qc^7w^yZKRSh(isBfnf z`bY3jFbN-g|2eJcMO>53`3eNc6euI4@e6CvRfu0kju&JHah>y8g@1WZus!d(jNo4aZ(C+PVI5F;mb043^yY8| z``0z7{G)#4`}>M(^UnhvS#g(5?Un!$!9j2X^EJMJth)ax3zn#|MB_Kh`~SDR^P8VVAqIf0w{LRv9@Jx_(9dK!d;0}thR+W#+^YkPl=HNV2 zWrCo}4l9wvocf(SLlKA!nx!eGBSvOnxau%RQ69p`#;!p@d_LR(h{>(3GFn>W;q;)h z>3@Q~jIYT$!vl$w?gDDWhcYpz$;ykEiJ`VgMMr&?Lc5FLod!r;i+9zj$DI1j(!Y5* zdc8=X`I1g}Vi5NQv&fO#4AkBzOQ?;?M)>aUHEoxL&5AV_vpS)mK=G>kJ{KBtULcWe zX3tk=m_~jfk?qCg3#AANhK++8%0J%54swtFr%;4G+2VH$AF(D16q zU7Z1}+0iEkeTEDw`$=DJjtB#ZEXt!ops^BO_Kka^t|h;cb*W8fKxD~LpKLOT3 z^E9$BCFvJeI3YWWV49)ONL_iu?|owTe&cM0?tN=Fg3VZu^j#|hS`W%HXBV50dQ}JA zFock9a@~p1&^%ImbF|&V$UjbWbSOje7dN*>YQO65G{x4otWNZn70uIpq3%OB!F1dx z(R8BtMpgM!W@|y9A#Qa*RdEvA$I{pzA?)n)XH&B+4O3K%*)loLJ>J#g(Uw-VFgDQyjzAMnfq1!DLr2l0qqA~~~TjX3eeEO!r zL%T@LTWjiIigBE+v5IyL%bSC4cN3Y+4hLO<8=-Vq7lSb5RLcxmmjBXr-^TMK;=FG5 zsZwR%$%2$~C=V<@OHJN9K4rhJ+{w^Uc=Xj{!LTJ0z?RFay21N#Jnb3|AUtHj7%K6jxZ$5q?3Abzy$} z9o1a;a?sY)xTo2og@A#cjhZ-I9CqTh$(RMLD+qXiI3-_!GFinWCp4{ve+LDh{uiB&)YYv<29rfE0m3mo-{l>!KP|SeJMzBzaZIf)#yM_gYrXj8)qV!9mco z=SNKH4A0$?WQ0Wq@>II^0c&#%z@)MRCd;99f&qxhwsl}NX;(rIbIRS-9H`-`X1$9Q zd_^0V1v{AUDj)Z-8!VX-D3v1@m6RaQmYraoNO~9B4PxBY@w{F@ ztj+?wS9VMx$150%D7`ameDh@UwF>YwxQE8~ju&oWlO8=&xT_U1oG0JKv#O?+cg>WMyT1$b=WDw9} zTRBG3x|a5KlkcRWCd@_@j^=9%B;V7yz07-1+4vGawN^gDr~X=HO-!tz$dv8 zq%%@!q$R#$QLYumu6A{eKA{-uFFDhj=c!Ac*NRc@``tJz$CKLdU9&f--@pcrh-`Ym zjKYpZKf7Y_t9P08JvThaeG=uql%5y8--=3W3ov%;iu8Rplh11Iw@MOGpmR> zDj)S92z4c>0E;M-W!+$zT_t|FTzPB9h~@j1?un?SLlnw_*_TUj>+&UIc1=+!Qp{y^ z?R3@DPN#S(Z^I1)Tks}P$QDG_SKMAUd=v9!Lvi6LkPTF>he!y=cOqH9k4caZ3bg5I zY}8Aq6h@vL$S)Pr@XI?IH&y&p;5l+k#avn9aj8m+F);a5ciRz>HyNq1`$jXICAst$ zXC4oevnV?Doqu7{j7z?Y@4{V>^7cH#4-LqDO~KAJH`+T)K;~I>RPL|jFJ3g7g2aS= z=2<5gu)SF3VFS9nv{y6&-tAgYxfGG?owVW>yswdpRkqzK4<2*#Unbb=x_B_WFZIv{ ztWL??LvwU$2m3<4jmJS@8ciRY1a`=xGM?z#p&CBy@_j|Rl|R-Tey3CFr}hOVEXB#D z_}MiYGeTNv* z4|vBP3kc{H$(hL1&1rq?v<-%@5BrV(yp>Xs<`8GVl9FgBvdDE=PX`~6kITo;p|KMcRL z|I4c7C5Y6m2(WwFz>_mN4Gb4Tt5y2bpC7#bNUoiebz_d??lioM78(3|D~9*xYGcv& z4cq-M_AT`Gmh?ZCmn-XEZ!uXt^0kfg>R!`V|HDML$f7Dy9*}w<=wkCW>og&#Gsb3a zZhTU3C$}2pd9D16f%cT4#*-$`JSk5?pt|qI^9)PK8W|SC+oHnGXAQmE24fkNTqdn* z&>4oX6sk1(|cQ)L7}XHx0D8m@E-$^ z7;mMW2lYtP0qZ8~XKSgoTj`5VFy}@9#46&Hg&MZ>cj(>aw|gx0wlaw>iF(q}b2zdo zvTMF4Y-lNU%1NNL#!r{;ptvaMNr!=lf0e`%P7OG#m)9=rD?PV)YOZsst9`~^+%;%Y zBiSXFySK3MYf~B@&qAQ`4|U}WYHPRR0=|qY`vti0O6i&WVOpV#%TREv1!5QbQpx!1 zT{_sI;pI;QygR0n7OD*9B=XHyIK!O4Xh;go%0V)}nem3-HR>Xc#y@D|I?f|@?u1H^ zo#iOgv7{6LBr5LSb3Aro+`aPc&VuJ3j=oVU?JqaQ7@Fj0*05pu9v*br^~W?e-o&YD zQvRB~uLnw=16_w8@fMTfg&wbafG`^BGzx+qxk^XHXB0HX39##kuX;yduPCMpuXTEO z*89UnI)>Kku42oG6`pG=DWP(?k5*OG0+R%)Pd)4BA88o!8e0`MuTafU(bfkK>*>yw z0pA}j*k*mxg?D8?DU(GP14%Jd+VmDgd7%Nhvp)I;hW6&A=BPqDf6bEXw+!1p9FF); zh42>s-Fpn%@OBwZ<%@ByVvZP*+!_#=|Frq4zn7qT0bHcfBU^im>G-Qbn~oVjgO&)5 zep_OH&Ir2&iYCdwq5N}Ft*dC>V+MhB9}2qK3{=o z&VvEvr&k)uLEz{sfprox`j}_*`V{N}PDkihf$+2tiKHM_l0sNBM~>J={auOP!ifiv zoF?I{^)=fZ%sMOBc+T$<$pgl`i7$!7{bYAivsM6{Ua2|&E&|u2VYOUOLoD0R)@mf@ zzkHR>l%YKPCM8nx=MRuoQQ%=qN<*gkINaq3k}{l#6t*r3s|)VJHQIH!9KO%Bun_R( zb~d3lxX}fkrabJC=f`wTTYr9NZwYdNhvjO*Lau{^O^{uuBhJ&7ro_5rL;<0J#qN;u#Y^4B`&HNo>8wtfh!M4+dvV zD3?qaj;x-%Z&!}c~(!6a} zlHcU=n$NOU^f8-y{CabWn!Y#2(QonkSKyj+@04<1AY8g5Upmk;k1>HnpDSDe!k{qGL_n>9bh%w+tAUH9-Ad^_ zY}6UgX)*#tSNzB$HCvZtf}h)NBB?jKGdbvfp#3M=kJvVrbz z06DAk;AwH1&XcOhRym7kj;f1$jWg$cKadqR>9y4UJDTW@8gcatklS{~w2}Dhd0>_n z31I&!wo(}IPZ4i7gBi@xDoVJ{cwcHjh-sK5W-+|^kru=gSPhiwsq0gJQgnG;r5{~H zxDILD%R+67Uq5z(6C6`q9m(dN_Fp{!OUxE6(^w{BDX@NDlPsdQB(=z`X-_vEO!L&W z71s@a)i!n}OrOwVvJ2}yQALivw=`TyC>qf|gH5k!(8dvaw~hj<2`LuMv<1WmJmZs> z$uS}B7VX5oRbBgHDwT6XLn{P{kQc6!k`qtfyxI{R5pt>6`iM;0c7e${Vsx)xYF00F z0a|~~T2pioag&Z@F+{>_!pv|j#7{LRi>-=^t4xb~6N{;76#B*}PfNLb!ZoMBrd}d< zvnbnNezVPr)qMapXc}kf4UX?B&taxjHtiG=s0@q)E4ydH*!TXNGz^Ebyr~bd#r&*F zvA2HUUah0UyuKpi&Y)p5zJVzk8>OF=fjXD@W?Ytqca^{jUKc-crwG)@v7#JR3(zl4 z0_@9#+t8zJ7<)si!{A6n<-%1_lx2NWcW|};h|JQWDqRG~I$-Yu{F(@7>PhL?ScF2X z^w+=FwzofGm1Z>D_Dw}2bJd?HYmLaWGilxZTW<&a=}f=sC(o?OTqDtqO-@S#w1{ej zwiv)3^Y?M&4OR9xieArriP69QHZIN9hyum3r@yUP8%1m`ySJsE4=Ee>GP3F1#LnGx z&UE7I2)U+tOHoCIHpPfVY?kwRTgVqIWjaLkFM6o*IikS4$r3)D#d9w;x%c4*zPyR6 zYVxY;NZ|3*IS9P|uCmr_LvGI9isEPR<)V46a+8@5F*RU^zt9^aC33s+B1E-_?cVIG zLNdkf#BjA~m-Xr==uc1lF-&;KUU=`LlA_|tVRaL?+nqd?zv1!bsv5%o6MMW{2e^fP zyp31pSopH~9C`^rl>duUUb^(3MR;D!yf`2Fm){9)4h)ow02YB}C|g7i=cUNz|3a?+ zp(wC%rXq{ua!;b6Y{O&UmzOD@+pezm7tShN%p!%2Jpkp_xo(||s_l6|lx{UNiJI$; z^@rb1lz0ebl(;GXl@ACzx8YU4H3dHHu(LQh7%9h2o$^f=E&r?w46 z$7j$DJE!mV$eROj-~bKWxtwe;M`Hv!%X)i_U9xIS&jWN#ir!lUkQ7jZU_U;Lw4Os<4} z3C{Q^wFG^csb!@HCtW)EPNYU zHNHi!+PUfQ4`vNCfwqBh2SOx?Lnst5z{2^o*satRYq%H4DAvYyY@m_1{(8VXP`Nsv zlx%Zi8Ao7EG1ygwIyT51cwq-Hw2f134SfoB(txWSzd&^v+oVGMYo%h6YU6&#Rkx?&H{ zWfd9rCp*~};A+Fx5 zYQI;DG}&LwvtZfyu6*F9wxQCtTTd6pa;m( zcmAyE4?RRa{Px3-uBdeEtT9yL2%mpax?#3=t$KjswCD)6v^oL+h=EOxmgTj&@7_=g zmpa!IW`}zprPx)W(|pzy%TK%VP&7kmr8i^lhur{jctl=If1F4&ZBa}@rUB%f8Z&c? zN|mR5kgx}D&d3vRZAA}2X(Ig34=kWO33S?ikcCRx+be&DLO z^Ws2v)oGwzTh?8j`W-cW-i&!c!+l!PgP%|GVgv2k)ehQ%b3H_r`K0!|N&k#yV~2UF zZV=~L7kSZG>4WBrbr%96oRZh8BkjrKQP%#}Ix(x0C z`CJUXC-&0zywhAFR7#=wgzTFTAUe?cDR!Z&0Ngv)E#G##4rpwO=TuHDS{p zp!y8=5svV7dEwhVitV!z-Hfdu+x5X!d_cYD`}lj!TK8&X-pwnSt(K(Z2wY8kzE;=P z?SvH5Ug30mWI%Aj$)8erd;);j=d#~Ne~&HJA@9gZdbd%tI+Pft@ZBHy3(s`=EgiTb zxfZ)n361qet~?x4$zrF0zJqf8=N>o`we{aqHgH_@;%c6rQfOtqtfovG8l<$=()zi6 zUW|Hg1teDER7N+b!P`N?Vrd8t(TG6h88}h+zXM0EahcLs^(ZQZs{B4ur06!OhOK>r z4xDzKY|);2!xsP|Yk#|?Qr2s^FZ2q@l=P1w{tnZ?`x9DuDvsqQ(-O{2lkfkz#YQ)e z4>nlH9alqyNlgUl<7nvaLGppYezo1?Q9lA^LXsIiGfx&+#rrqb1I!-v$1V{yZ!yXJ z#BNb%DRoSaOya_*zhO{z*W-&KQL`h8>NzwI+x?!%Rg%XQ)AR!2c}(1XK+Sz?L@)RD zjs+vKq4VkWZP*R|ESzI19{}5+=p}ZhB5VnH(=MmS!+xM#SmdIIdsnvnB5M`ikr5%@ zW<{g3x2apxYNBuCmAz2XF(Q2?8&|v;hVMU4w?{0DGz7iy0KAEH0HB}m`NXyq$}u3> z;Bm`m>Q6{Uhx5wC&(#Mq&RR&`luuEHItL?@YbE|jkA0qU;s$bbp8DOLC^X)bjY011qG$ic38f$RR~*K}d9c;aiO$0l|HIP&U>!WPE}bDarSv{Ji<}7tRv$;)-*j9Ql2jxmsiDXbDnB}{{GBY&D)>hOlGLw2h4e>M11^J zE22dOfcP)R1@m)v z=OQy>{r;>4CWLPbBn4NT+Vq?$ILw%Z5gu6r7s(6cNyWM=n36 zPrQN++VDrRak%uN9qxjpdfer%x0b0viuoJD5w*QBt<9)|sy50B#?kEYoUD*Lw~{q$ zZXWzTbR!wZ8;Kcp{AdK8GBZ{G)a4f>jELc(O#z^k_yf7wtyb;JiR76jp?I}UXOcJb2E}mx%9d7Vs`JC z!1dxF*pt%rXyr-pfb~XRe`=>O_f`^`^U_?J4}9_r>uSJkYwyZbr zZg>7Q{>a60)}SXP&-WzjPhB|xxq}o4-eqxV7nbmT%EQpjozCVv@ zrxh>#1PsIb4l&)JCCT&p>>k|_jYgE@m8RVOP+n7YW|*9_HKooU;$Yx-2G$=iF$$A9 zM=0Y`khxs4k)x1(vS{e(8?dL3m2Fe-JEIy8M^eP2WtF_95d>CqvnF6Y&WaR6@0)iR zqMUz%#DQ}hFu;7vl0A^z^0@~1kM?IPy@q4_Npv$bBR_-}^>@(9^s@=)cB>8K1Z2t9?oV1UZD%Hpb|HB6doD!sS%o1=1VA@n} z@n(@HK0_i*U*eYKEauD~+;i9VJ}YprYF_WqaMO)za!PqHK`?c$&3D6(X7;++xDKTx zX+r+-TI#mwn77r?I%g$CW^gY_+%ZU#J1g+4ZTZ(5vzkx1snWk2A5NteA=H$?`!HOX zA!2vZlldRZr9O}t(h*M2`F|EDy3C%Xdmri`7!AKmW&pbEf8~k)e0gFIkS93hV&s=; zKD{>nuTS|2p@P1O zf^o`*{fXmn4!}`{pU1;pKBZVGhf99S#=bvt7MsuYkM`)~?7THm zy4b}1_}|1w+qKv?huW{+H9lcIOrZRHp%Qdej71bUbkJ>uZG9N748AsP;__;|Xc8|v z$^3@iTIEe+sfT$#)8=UET9(9CH<0D0t6a_@ES21Q>yX~s+M}SVbRuTO+;L3s=d?Z&q#gYJ_INir_)WR$@ecqLWz|A zf}xZh8gHFMzc;@K1JYghtN<)zSWSvCIs?FO#)X-Dh9`IR2iZe@PJ|0r0{@n}Ti=Yr zp)qW%eauX`-8S(l+2L`ORBT=G!+$p1{r&wkaZg3*T(9kx>%h>>5o|E+`BB8VB}!E$ z@1AT^$hrnS$&~)#=Ja~m70}o~WETjuw%I8I=oK^Lqq^9wW$)Aa=?4vzPtIj6!1{n% zu^99y@5v9UikDmJ15Md^-XT^a$AO2unkOB?!1;Nv+gXvB^K*6Gu?uV{6Bsm=*!wq& zAoi)=)b&~MbL}#v(W?##rXObYMoDIEO-78vN=tnBWJB_mfX)=;3ss@w?wYCjr-?XV zgw;ALX;fUXN>Zza(@u2Lf~JU4s-aR8gOf5fY<4Ow>A5!$TJLSAb8x5w%?%GU^)6ce zaVP2_ny0FuU+S&~3NQaIn&xi#??CP16|vMSO58PP6~fHNa!&m*h~B47-tz{Xq|bM01MtzYVR&Vb^Gok#S)@dz8qR>< zD82dv^%~X)8dAu*%W$cDHfU@A*XN`0tQ2ZD+sFU7N&g3N1n3gGoz*6lo>8KuzkZWd z)z_c2RO!}dI`Xmlo{7cgJG<^>HPJxpQ<75!PkXnY8jvkdeb!Oyx?pTZ0>P@H3b5jV z#wCf)B0m39ZVSxXQ?ja5k#6%FmtGQU_Yo;=ZCJ>nKQ?q$ZB4)(`Xwb(F;gZThvZ#; zx!|I|aFUMN4}iX*+iI=V8Pppm*@_pyH*7j}p3zZx-&YG;QYS2GhSB>1uog%%`E8Y5 zMUryYDdlr;Hr(PVU z86!XwlB-7xOh13Wp)NV=1Gar+S29*z;9UHgDEsaVYN06WFxg_XD_+HD_3g&ys47j7 z-dy0GMEe)>{vh%$+?LJK!wSlM+)&!H^Ly0z;~u#p;jnVFC2e#Ef zEYR?9d3kM1A9od$KK%CoAJ*sfz*5?;?mS?3Dde6tiBFv}?Kmu;{~WXB;Ilz>>g_rJ z7##x;MLpp_!{LDxZx{39!+N&1ZD9n|>wf?$YQs9 zE_e`=HsqkaNTQp1yE2y1$mnAurBUN)v94|KKF%8}J4SW-^VF&fN$GxZH<<&Q-Shup zg9JiYJAHQomM||dcfB%WH#O?rE9zI?bH!84EJz_gf`!uk#abYR#dliuNGU6fSr($6)?NQq_UrBB^2#1-a?k1{ zlHR$B9%_YG>Yx86@QDrX6`9^ul!Dd;#wuE@umq(oL>u%lzBQ_7>(O!ON&(=PW$Vck zoAp^;Ak5#B*b)#M_%^mZ%I1d;S?TwH2@>XI4*Dxs$EoGr` z;gIql?jo8!KNvR>p6yD8A`1w~c3CCg3oo&< zplkA=8dCmo zYr%TUCEq@x9R4ecr*hvw-yhxX53e4mVN`#PoVli(;M` z0z8Pm+FO0Ei)T0dT6xd|th(S6zPN_N;rpD3;<=Mn_qUPh3Gt>La~j5svg-{r%>3)g8g&3Kt} zX((6}04#CM5P%Mw5V!DfX-5wypus8iy#Wht5(_&jWbvo7sc+8Sc$yX^bsYy*g_vt$ z=dRvIA?16-rg1oDlZT$(FG`za6%}#u1P<)rrjh|Bd*GQiT1hO>)AE#BO*9B(%wHB%FLwecV1m6`ia(Bcp z(a?LZay~1lUm6lXmY$EWXWme6%3_%Pc4oCXkt;K;XK2rXY&t}_?2X!B9UcfxXqsY0 z&M=%vrAv>eL~?aapBdPD+Zkx6#Y^xDt^e58eBs>a{{KxsR7jT_RgA6)OdKrw0R_{9 z9FWZV;2}8EK{cL-RA_w{?O|B-HU;o@mpFEgg|+PQXZzD!{U1uhnSL7mEERh0Igs=I zB)mXXA^&asWx50PQ0D0>*v4n{Xm3FSHm2gYaoZMhv#IOiQHa-|&Pn}Z zSiJjH)&FKlUBp2D->`KR3&v%Tk&$_ypW<@209~Lv?BBAwbdcv~gv`v$%9so?a`K3X zh~#D9-*O56Tfo-)`wR>Wj~*Ec0J)zS;3^>u8^wf$E#iQeGS;#Ge`B|_8)|E7;aUiQ z+Hv*r^0EacLhIW(Iqd@hwl5r)LyvHndMr{P1c(qTQT(@%FRpgiId9gpS`na8A8+I% zDkhfHjUIdH&$2o^fSGIZ-I}UIp-_E&ec|EZzW)lEjf2R`%LDPZP$;(2dK~zxCTZ3T z5+KHvL`(*V)un&%;3C>q3H`4>FHv+_a3UOT0iP2{fsGC6{|wa0M1u?ZJgiA)fG_0Y zr^KYaqeE+TL23LAGmwJ|Jk$OC?aja0w0!?-b^zn2i$t=Epa0H-|G)MfV3MI{=h@Pc VOwrJ;`HSyXK~`C&SlZbC{{dSBwo3p2 literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/iot-edge.png b/v6.0.0-beta01/images/iot-edge.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2132942fc922f608f0ca5cc6e519a4af8543a4 GIT binary patch literal 50255 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

-|wuqj36J&kt+VqUI8CYBTb=rti4T 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 C%pM;A literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/iothub-create-consumer-group.png b/v6.0.0-beta01/images/iothub-create-consumer-group.png new file mode 100644 index 0000000000000000000000000000000000000000..d8819d6ebd109d37b6f9a8e1e46c213f8f604f9c GIT binary patch literal 58689 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 R^#cpXV4C{SiU&3k{{c_SUB>_b literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/iothub-get-event-hub-endpoint.png b/v6.0.0-beta01/images/iothub-get-event-hub-endpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..3e91cfded4f9b19902f63959ede6ad8fc1bd8ebd GIT binary patch literal 62506 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 literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/lora-device-model.png b/v6.0.0-beta01/images/lora-device-model.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0b69bf11c6e212dbbb5a5b44a7f4e88c0c8f9c GIT binary patch literal 62177 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 literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/lora-feature-device-model-toggle.png b/v6.0.0-beta01/images/lora-feature-device-model-toggle.png new file mode 100644 index 0000000000000000000000000000000000000000..a32d0bfbf1f0a76a94de2a7c308ae4ea0aa96a91 GIT binary patch literal 4197 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 ZWu1rON?w5L?tTIAfNHv`4a)ZK{sWC0I;sEw literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/images/lorawan-device-not-joined-message.png b/v6.0.0-beta01/images/lorawan-device-not-joined-message.png new file mode 100644 index 0000000000000000000000000000000000000000..04bf69a6549823cf88ef8cb0f540de15382dec1e GIT binary patch literal 3483 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

`I#l?>&p+iaaZ#!=G0HYjn{_z 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 literal 0 HcmV?d00001 diff --git a/v6.0.0-beta01/index.html b/v6.0.0-beta01/index.html new file mode 100644 index 000000000..d6eb23af9 --- /dev/null +++ b/v6.0.0-beta01/index.html @@ -0,0 +1,668 @@ + + + + + + + + + + + +IoT Hub Portal + + + + + + + + + + + +

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

IoT Hub Portal

+

This project aims to provide a solution for handling IoT Devices easyly. +It leverages on Azure IoT Hub or AWS IoT Core for connectivity and device management.

+

Features

+
    +
  • Portal Authentication
  • +
  • IoT Device & device Model management
  • +
  • IoT Edge device management
  • +
  • C2D Methods
  • +
  • LoRA WAN device connectivity
  • +
+

Quick Start

+

Azure

+

Quick Start for Azure environment.

+

Amazon Web Services

+

Quick Start for AWS environment.

+

Known Issues and Limitations

+

Refer to Known Issues for known issues, gotchas and limitations.

+

Support

+

This is an open source solution. +For bugs and issues with the codebase please log an issue in this repo.

+

Credits

+ +
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/open-api/index.html b/v6.0.0-beta01/open-api/index.html new file mode 100644 index 000000000..e862531f0 --- /dev/null +++ b/v6.0.0-beta01/open-api/index.html @@ -0,0 +1,520 @@ + + + + + + + + + + + + +Web API Reference - IoT Hub Portal + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

Web API Reference

+

+
+
+ +
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/open-api/swagger-93337aca.html b/v6.0.0-beta01/open-api/swagger-93337aca.html new file mode 100644 index 000000000..cbef62726 --- /dev/null +++ b/v6.0.0-beta01/open-api/swagger-93337aca.html @@ -0,0 +1,111 @@ + + + + + + Swagger UI + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/v6.0.0-beta01/search/search_index.json b/v6.0.0-beta01/search/search_index.json new file mode 100644 index 000000000..8815c73d1 --- /dev/null +++ b/v6.0.0-beta01/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"IoT Hub Portal","text":"

This project aims to provide a solution for handling IoT Devices easyly. It leverages on Azure IoT Hub or AWS IoT Core for connectivity and device management.

"},{"location":"#features","title":"Features","text":"
  • Portal Authentication
  • IoT Device & device Model management
  • IoT Edge device management
  • C2D Methods
  • LoRA WAN device connectivity
"},{"location":"#quick-start","title":"Quick Start","text":""},{"location":"#azure","title":"Azure","text":"

Quick Start for Azure environment.

"},{"location":"#amazon-web-services","title":"Amazon Web Services","text":"

Quick Start for AWS environment.

"},{"location":"#known-issues-and-limitations","title":"Known Issues and Limitations","text":"

Refer to Known Issues for known issues, gotchas and limitations.

"},{"location":"#support","title":"Support","text":"

This is an open source solution. For bugs and issues with the codebase please log an issue in this repo.

"},{"location":"#credits","title":"Credits","text":"
  • Azure IoT Edge LoRaWAN Starter Kit
"},{"location":"aws/","title":"AWS configurations","text":""},{"location":"aws/#overall-architecture","title":"Overall Architecture","text":"

This schema represent the various components and how they interact to have a better understanding of the various solution elements.

  1. The user is authenticated by the OpenID Connect server.
  2. The user access to the IoT Hub Portal with the OAuth2.0 token.
  3. The IoT Hub portal uses the AWS IoT REST API to retrieve the data.
  4. The IoT Hub portal uses the AWS S3 storage to store the device models configuration (Images, Commands, etc.).
  5. The IoT Hub portal synchronizes its data with the IoT Hub to provide a consistent view of the data.
"},{"location":"aws/#quick-start","title":"Quick Start","text":""},{"location":"aws/#prerequisites","title":"Prerequisites","text":"
  • You must have an AWS Account. Get an AWS Free account to get started.
  • You must enable Fleet Indexing for registry and shadow Using AWS CLI:

    Bash Session
    aws iot update-indexing-configuration --thing-indexing-configuration thingIndexingMode=REGISTRY_AND_SHADOW\n

    Please note that you'll need the necessary permissions to execute this command. Make sure your AWS IAM user or role has the appropriate permissions to access and modify the IoT indexing configuration.

"},{"location":"aws/#deployed-resources","title":"Deployed Resources","text":"

The template will deploy in your AWS Account the Following resources:

  • AWS RDS - Database for PostgreSQL
  • AWS S3 Bucket
  • AWS App Runner Service
"},{"location":"aws/#instructions","title":"Instructions","text":"
  1. Choose a stack name for your AWS Deployment.

  2. Follow next step below to start your deployment:

    1. Press on the button here below to download the template AWS: Download the template

    2. Import your template : From the AWS console: CloudFormation new stack - You can change the deployment region by changing the region directly in the URL - In \"Upload a template file\" import the previously downloaded file With AWS CLI:

      Bash Session
      aws cloudformation deploy --template /path_to_template/awsdeploy.yml --stack-name your-stack-name --region your-region\n

      see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-deploy.html for more option about aws cloudformation deploy

  3. You will get to a page asking you to fill the following fields:

    • Stack Name: A name for the stack where all the template resource would be put into, just choose a meaningful name.
    • PostgreSQL user: The PostgreSQL user name to be used for the IoT Hub Portal database.
    • PostgreSQL password: The PostgreSQL password to be used for the IoT Hub Portal database.
    • AWS Access Key: The AWS Access Key of your AWS environment.
    • AWS Access Secret Key: The AWS Access Secret Key of your AWS environment.
    • Api Client Id: the ID of the API client that will be used to authenticate the portal.
    • Client Id: the ID of the web client that will be used to authenticate the portal.
    • Open Id Authority: The OpenID authority used by the portal.
    • OpenId Metadata URL: The OpenID metadata URL used by the portal.
    • OpenId Scope Name: The Open ID Scope name
"},{"location":"aws/#configurations","title":"Configurations","text":"

This configurations are used to get access to AWS cloud Platform. You have to enter them in a json file to be able to connect to the Iot Hub Portal. Here is a template of a such json file.

JSON
{\n  \"CloudProvider\": \"AWS\",\n  \"AWS:Access\": \"<ACCESS_KEY>\",\n  \"AWS:AccessSecret\": \"<ACCESS_SECRET_KEY>\",\n  \"AWS:Region\": \"<REGION_KEY>\",\n  \"AWS:BucketName\": \"<BUCKET_NAME>\",  \n  \"AWS:AccountId\": \"<ACCOUNT_IDENTIFIER>\",\n  \"AWS:GreengrassRequiredRoles:<ID>\": \"<GREENGRASS_ROLE_NAME>\",\n  \"OIDC:Scope\": \"<SCOPE>\",\n  \"OIDC:MetadataUrl\": \"<METADATA_URL>\",\n  \"OIDC:ClientId\": \"<CLIENT_ID>\",\n  \"OIDC:Authority\": \"<AUTHORITY>\",\n  \"OIDC:ApiClientId\": \"<API_CLIENT_ID>\",\n  \"PostgreSQL:ConnectionString\": \"<POSTGRE_SQL_CONNECTION_STRING>\"\n}\n

Note: You must replace all values in the brackets by your own AWS settings. If you can't find them in the AWS Portal, please contact an administrator of this project to have more information.

You are now ready to start your IoT Hub Portal development !

"},{"location":"azure/","title":"Azure Configurations","text":""},{"location":"azure/#overall-architecture","title":"Overall Architecture","text":"

This schema represent the various components and how they interact to have a better understanding of the various solution elements.

  1. The user is authenticated by the OpenID Connect server.
  2. The user access to the IoT Hub Portal with the OAuth2.0 token.
  3. The IoT Hub portal uses the Azure IoT Hub REST API to retrieve the data.
  4. The IoT Hub portal uses the Azure Device Provisioning Service to manage IoT Edge devices.
  5. The IoT Hub portal uses the Azure Storage account to store the device models configuration (Images, Commands, etc.).
  6. The IoT Hub portal uses the LoRa Key Management Facade to send Cloud to Device (C2D) messages to LoRa devices.
  7. The LoRa Key Management Facade uses Redis to store its cached data.
  8. The LoRa Key Management Facade uses the Azure IoT Hub REST API to retrieve the LoRa device keys and send C2D messages.
  9. The IoT Hub portal synchronizes its data with the IoT Hub to provide a consistent view of the data.

Note: For more information about the LoRa Key Management Facade, see the Azure IoT Edge LoRaWAN Starter Kit page.

"},{"location":"azure/#quick-start","title":"Quick Start","text":""},{"location":"azure/#prerequisites","title":"Prerequisites","text":"
  • You must have an Azure subscription. Get an Azure Free account to get started.
  • You must have configured an Azure AD B2C Tenant with applications. See Portal AD applications configuration page.
  • Understand how IoT Edge LoraWAN StarterKit work. Have a look at https://azure.github.io/iotedge-lorawan-starterkit to get started.
"},{"location":"azure/#deployed-resources","title":"Deployed Resources","text":"

The template will deploy in your Azure subscription the Following resources:

  • IoT Hub
  • Azure Function and Consumption Service Plan
  • Redis Cache
  • Application Insights
  • Log Analytics (when opted in to use Azure Monitor)
  • Azure WebApp and Service Plan
  • Azure Database for PostgreSQL
"},{"location":"azure/#instructions","title":"Instructions","text":"
  1. Choose a solution prefix for your Azure Deployment.

  2. Configure your AD to connect to the portal. Use Portal AD applications configuration page to configure your AD B2C Tenant :

    You should have recorded the following information:

    • OpenID authority: <your-openid-authority>
    • OpenID metadata URL: <your-openid-provider-metadata-url>
    • Client ID: <your-client-id>
    • API Client ID: <your-client-id>
  3. Press on the button here below to start your deployment on Azure:

  4. You will get to a page asking you to fill the following fields:

    • Resource Group: A logical \"folder\" where all the template resource would be put into, just choose a meaningful name.
    • Location: In which DataCenter the resources should be deployed. Make sure to choose a location where IoT Hub is available
    • Unique Solution Prefix: A string that would be used as prefix for all the resources name to ensure their uniqueness.
    • PostgreSQL user: The PostgreSQL user name to be used for the IoT Hub Portal database.
    • PostgreSQL password: The PostgreSQL password to be used for the IoT Hub Portal database.
    • Confirm PostgreSQL password: The PostgreSQL password to be used for the IoT Hub Portal database.
    • Open Id Authority: The OpenID authority used by the portal.
    • OpenId Metadata URL: The OpenID metadata URL used by the portal.
    • Client Id: the ID of the web client that will be used to authenticate the portal.
    • Api Client Id: the ID of the API client that will be used to authenticate the portal.
    • Edge gateway name: the name of your LoRa Gateway node in the IoT Hub.
    • Deploy Device: Do you want demo end devices to be already provisioned (one using OTAA and one using ABP)? If yes set this to true, the code located in the Arduino folder would be ready to use immediately.
    • Reset pin: The reset pin of your gateway (the value should be 7 for the Seed Studio LoRaWan, 25 for the IC880A)
    • Region: In what region are you operating your device (currently only EU868 and US915 is supported)

    see: https://azure.github.io/iotedge-lorawan-starterkit/dev/quickstart/#deployed-azure-infrastructure for more information about the LoRaWan IoT Hub and Azure deployment.

"},{"location":"azure/#configurationssecrets","title":"Configurations/Secrets","text":"

Secrets are used to fill in the login credentials to the cloud platform. You have to enter them in a json file to be able to connect to the IoT Hub Portal. Here is a template of a such json file :

JSON
{\n  \"CloudProvider\": \"Azure\",\n  \"OIDC:Scope\": \"<SCOPE>\",\n  \"OIDC:MetadataUrl\": \"<METADATA_URL>\",\n  \"OIDC:ClientId\": \"<CLIENT_ID>\",\n  \"OIDC:Authority\": \"<AUTHORITY>\",\n  \"OIDC:ApiClientId\": \"<API_CLIENT_ID>\",\n  \"LoRaFeature:Enabled\": \"<TRUE_OR_FALSE>\",\n  \"Azure:LoRaRegionRouterConfig:Url\": \"<LORA_WAN_ROUTER_CONFIGURATION_URL>\",\n  \"Azure:LoRaKeyManagement:Url\": \"<LORA_WAN_KEY_MANAGEMENT_URL>\",\n  \"Azure:LoRaKeyManagement:Code\": \"<LORA_WAN_KEY_MANAGEMENT_CODE>\",\n  \"Kestrel:Certificates:Development:Password\": \"<DEV_PASSWORD>\",\n  \"Azure:IoTHub:ConnectionString\": \"<IOT_HUB_CONNECTION_STRING>\",\n  \"Azure:IoTHub:EventHub:Endpoint\": \"<IOT_HUB_EVENT_HUB_ENDPOINT>\",\n  \"Azure:IoTHub:EventHub:ConsumerGroup\": \"<IOT_HUB_EVENT_HUB_CONSUMER_GROUP>\",\n  \"Azure:IoTDPS:ServiceEndpoint\": \"<SERVICE_END_POINT>\",\n  \"Azure:IoTDPS:LoRaEnrollmentGroup\": \"<LORA_WAN_ENROLLMENT_GROUP>\",\n  \"Azure:IoTDPS:DefaultEnrollmentGroup\": \"<LORA_WAN_DEFAULT_ENROLLMENT_GROUP>\",\n  \"Azure:IoTDPS:ConnectionString\": \"<IOT_DPS_CONNECTION_STRING>\",\n  \"PostgreSQL:ConnectionString\": \"<POSTGRE_SQL_CONNECTION_STRING>\",\n  \"Azure:StorageAccount:ConnectionString\": \"<CONNECTION_STRING_STORAGE_ACCOUNT>\"\n}\n

Note: You must replace all values in the brackets by your own Azure settings. If you can't find them in the Azure Portal, please contact an administrator of this project to have more information.

This json file must be added into your project solution. To do that, click on the AzureIoTHub.Server project in Visual Studio and select Manage User Secrets from the context menu. You can now add your secrets inside this file.

You are now ready to start your IoT Hub Portal development !

"},{"location":"b2c-applications/","title":"Azure AD B2C Tenant with applications","text":"

This solution uses Azure AD B2C to authenticate the portal. In this page you will configure the B2C tenant and two applications (API and Web UI).

By the end, you should have recorded the following information:

Text Only
* OpenID authority: `<your-openid-authority>`\n* OpenID metadata URL: `<your-openid-provider-metadata-url>`\n* Client ID: `<your-client-id>`\n* API Client ID: `<your-client-id>`\n
"},{"location":"b2c-applications/#step-by-step-instructions","title":"Step by Step instructions","text":"
  1. Create an Azure AD B2C Tenant (see: https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant#create-an-azure-ad-b2c-tenant)

    • Record the tenant ID and the tenant name.
  2. After creating your Azure AD B2C Tenant and registering your applications, you need to set up OpenID Connect to secure your applications. Here\u2019s how to find your OpenID authority and OpenID metadata URL:

    1. Determine your OpenID Authority:
      • Your OpenID Authority is the issuer URL of your Azure AD B2C Tenant. It typically follows the format: https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/v2.0/.
      • Replace <tenant-name> with your actual tenant name.
    2. Find your OpenID Metadata URL:
      • The OpenID Metadata URL for Azure AD B2C tenants is usually in the format: https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=<policy-name>.
      • Replace <tenant-name> and <policy-name> with your actual tenant name and the policy name you are using (like B2C_1_SignUpSignIn).
    3. Make sure to record the OpenID authority and OpenID metadata URL for future configuration steps.
  3. Configure the requiered AD Applications.

    1. Create the IoT Hub Portal API Application:

      • Select App registrations, and then select New registration.
      • Enter a Name for the application. For example, IoT Hub Portal.
      • Under Redirect URI, select Web, and then enter an expected endpoint for your portal (ex: https://tenantName.b2clogin.com/tenantName.onmicrosoft.com/oauth2/authresp)
      • Select Register.
      • Record the Application (client) ID for use in your web API's code.
      • Under Manage, select Certificates & Secrets.
      • Under Client secret, select New client secret.
      • Enter a name for the secret.
      • Record the Client secret for use in your web API's code.
      • Under Manage, select API permissions.
      • Under Configured permissions, select Add a permission.
      • Select the Microsoft APIs tab.
      • Under Commonly used Microsoft APIs, select Microsoft Graph.
      • Select Application permissions.
      • Under Application permissions, expand User, then select:
        • User.Invite.All
        • User.ManageIdentities.All
        • User.Read.All
        • User.ReadWrite.All
      • Select Add permission.
      • If you're prompted to select an account, select your currently signed-in administrator account, or sign in with an account in your Azure AD B2C tenant that's been assigned at least the Cloud application administrator role.
      • Under Manage, select Expose an API.
      • Next to Application ID URI, select the Set link.
      • Under Scopes defined by this API, select Add a scope.
      • Enter the following values to create a scope that defines read access to the API, then select Add scope:
        • Scope name: API.Access (this is the name of the scope that will be used in the template)
        • Admin consent display name: Access to the Portal API
        • Admin consent description: Allows the application to get access to the Portal API
    2. Create the IoT Hub Portal Client Application:

      • Select App registrations, and then select New registration.
      • Enter a Name for the application. For example, IoT Hub Portal Client.
      • Under Redirect URI, select Web, and then enter an expected endpoint for your portal (ex: https://**solutionPrefix**portal.azurewebsites.net/authentication/login-callback)
      • Select Register.
      • Record the Application (client) ID for use in your web client.
      • Select App registrations, and then select the web application that should have access to the API.
      • Under Manage, select API permissions.
      • Under Configured permissions, select Add a permission.
      • Select the My APIs tab.
      • Select the API to which the web application should be granted access.
      • Under Permission, expand API, and then select the scope that you defined earlier.
      • Select Add permissions.
      • Select Grant admin consent for (your tenant name).
      • If you're prompted to select an account, select your currently signed-in administrator account, or sign in with an account in your Azure AD B2C tenant that's been assigned at least the Cloud application administrator role.
      • Select Yes.
      • Select Refresh, and then verify that \"Granted for ...\" appears under Status for both scopes.
  4. Configure the required User flow:

    1. Select User flows, and then select New user flow.
    2. Under Select a user flow type, select Sign in, then select Create.
    3. Enter a name for the flow SignIn, then select Create.
"},{"location":"concepts/","title":"Core Concepts","text":"

The Azure IoT Hub portal inherits from Azure IoT Hub concepts to manage IoT devices.

It relies on the following concepts:

  • IoT Device Provisioning
  • IoT Hub Device Twin
  • IoT Hub Device Twin properties
  • IoT Hub Edge deployment manifest
  • Cloud To Device Message
"},{"location":"concepts/#device-models","title":"Device models","text":"

By using this capability, the application can create logical representations of IoT devices. This feature is designed to configure a set of sharable properties between devices. When creating a device, the user is asked to specify the device model. The application will then apply the properties of the device model to the device.

"},{"location":"concepts/#parameters","title":"Parameters","text":"
  • Device Model Id: The ID of the device model. > Note: Since the device model is shared among all the devices, theID should be unique. For convenience, the ID is generated by the application. By using the API, the ID is not required, but if provided, it will be used as the ID of the device model.
  • Name: The name of the device model.
  • Description: The description of the device model.
"},{"location":"concepts/#built-in-models","title":"Built-in models","text":"

Built-in models are predefined device models that can be used by the application. This functionality is exactly the same as standard device models except that the properties are not editable and the device model is not removable via the Portal.

Note: Creating and updating built-in models is not available in the portal. They can be managed using the Azure IoT Hub portal APIs.

See Device Model API reference for more information.

"},{"location":"concepts/#devices","title":"Devices","text":"

Devices are the physical IoT devices that are provisioned by the application. They are represented by an object that is stored in the Azure IoT Hub as the device twin.

"},{"location":"concepts/#device-parameters","title":"Device Parameters","text":"
  • Device Id: The ID of the device. > Note: It is the device id stored in the Azure IoT Hub. It is asked to the user when creating a device and is not editable after the device is created.
  • Name: The name of the device model. > Note: The device name is the device friendly name. The name is editable after the device is created.
  • Device Model: The device model that the device is based on. > Note: The device model is asked to the user during the device creation and is not editable after the device is created.
  • Status: The status of the device. > Note: The status is related to the Device status in the Azure IoT Hub.
  • Tags: The tags of the device. > Note: The tags are related to the Device tags in the Azure IoT Hub. They could be defined at the portal level and set to the device for filtering and targeting for configuration.
"},{"location":"concepts/#device-twin-tags","title":"Device Twin tags","text":"

To store additional information about the device, the application uses device twin tags.

Name Position Description deviceName tags.deviceName Field that contains the device friendly name.note: if not set, the portal will show the device id instead of the device name until it's configured. modelId tags.modelId Field that contains the device model identifier that the device is related.note: if not set, the device is not usable on the IoT hub portal. supportLoRaFeatures tags.supportLoRaFeatures Field that specifies if the device must support LoRa features.note: if not set, LoRa features will be available on the device."},{"location":"concepts/#iot-edge","title":"IoT Edge","text":"

IoT Edge is fully herited from Azure IoT Hub concepts. In the portal, the user can mangage the IoT Edge devices stored in Azure IoT Hub. For more information about Azure IoT Edge, see Azure IoT Edge documentation.

"},{"location":"concepts/#iot-edge-parameters","title":"IoT Edge Parameters","text":"
  • Type: The type of the IoT Edge device. > Note: related to the IoT Edge purpose tag value that might be used to create deployment manifests.
  • Environment: The IoT Edge device environment (Development, Production, QA). > Note: this is an additional field that can be used to create deployment manifests.
  • Status: The status of the device. > Note: The status is related to the Device status in the Azure IoT Hub.
  • Nbr of connected devices: The number of devices connected to the IoT Edge device. > Note: The number of connected devices is related to the number of connections that are currently present in the edgeHub module. This might be different from the number of devices connected to the IoT Edge device if some modules are using edgeHub connections.
  • Nbr of desired modules: The number of modules that are desired in the last deployment.
"},{"location":"concepts/#last-deployment","title":"Last deployment","text":"

The last deployment section shows information about the deployment manifest that is currently applied to the IoT Edge device.

"},{"location":"concepts/#iot-edge-module","title":"IoT Edge Module","text":"

The IoT Edge module section represents the modules that are currently deployed on the IoT Edge device. It doesn't include the system modules of IoT Edge (edgeAgent and edgeHub). With the portal, the user can interact with these modules and manage them (Get last module logs, restart module, etc.).

"},{"location":"concepts/#iot-edge-device-twin-tags","title":"IoT Edge Device Twin tags","text":"

To store additional information about the device, the application uses device twin tags.

Name Position Description Environment tags.env Field that contains the Device Environment value.note: this tag may be used to target deployment manifests for the IoT Edge Type tags.type Field that contains The type of the IoT Edge device.note: this tag may be used to target deployment manifests for the IoT Edge"},{"location":"concepts/#dps-enrollment-groups","title":"DPS Enrollment groups","text":"

The IoT Hub portal relies on Azure Device Provisioning Enrollement groups to manage IoT Edge device connection strings. When clicking on \"Connect\" in the IoT Edge details page, the user can access the device unique credentials in the enrollment group.

Note: see Provision the device with its cloud identity to know how to configure the IoT Edge to use these credentials to connect to the platform.

"},{"location":"concepts/#device-configuration","title":"Device Configuration","text":"

By using the portal, users can manage the device configuration and deploy to devices that are targeted by the configuration.

It relies on the Device Model to define the configuration parameters that can be deployed to the devices.

"},{"location":"concepts/#device-configuration-template","title":"Device Configuration template","text":"

Under the cover, the configuration is stored in the Azure IoT Hub as the twin configuration.

JSON
{\n    \"id\": \"<configuration-name>-<timestamp>\",\n    \"schemaVersion\": \"1.0\",\n    \"labels\": {\n        \"created-by\": \"Azure IoT hub Portal\",\n        \"configuration-id\": \"<configuration-name>\"\n    },\n    \"content\": {\n        \"deviceContent\": {\n            \"properties.desired.**\": **\n        }\n    },\n    \"targetCondition\": \"tags.modelId = '<The model identifier>' and tags.** = '**' AND ...\",\n    \"createdTimeUtc\": \"2022-06-13T07:32:19.7376998Z\",\n    \"lastUpdatedTimeUtc\": \"2022-06-13T07:32:19.7376998Z\",\n    \"priority\": 100\n}\n

Please note that the created-by label is used to identify the configuration created by the IoT Hub portal.

"},{"location":"concepts/#iot-edge-configuration","title":"IoT Edge Configuration","text":"

The IoT Edge configuration concerns the IoT Edge deployment manifests that are currently present in the IoT Hub. The portal can be used to see the details of the configurations.

Note: At this time the portal cannot be used to update the configurations.

"},{"location":"concepts/#target","title":"Target","text":"

The parameters are related to the IoT Edge deployment manifest target condition field. The IoT Hub portal will use the Target condition to extract this values from the deployment manifest.

Name Position Description Owner tags.owner Owner tag filter condition from the Deployment Manifest. Environment tags.env Environment tag filter from the Deployment Manifest. Type tags.type Device type tag filter from the Deployment Manifest. Expected value for IoT Edge LoRaWAN LNS is LoRa Network Server, otherwise the value must be Other"},{"location":"concepts/#enrollment-groups","title":"Enrollment groups","text":"

The IoT Hub portal relies on Azure Device Provisioning Enrollment groups to manage IoT device connection credentials.

For each device model, the portal will create a new enrollment group with symmetric key attestation. By clicking on \"Connect\" in the device details page, the portal will show unique credentials to the device for the corresponding enrollment group.

Furthermore, the enrollment group is configured to provide initial device twin state:

JSON
{\n  \"tags\": {\n    \"modelId\": \"......\"\n  },\n  \"properties\": {\n    \"desired\": {}\n  }\n}\n

For more information, see Azure Device Provisioning Enrollement groups.

"},{"location":"concepts/#lorawan","title":"LoRaWAN","text":"

LoRaWAN features are activated by default, providing a way to configure IoT Devices that supports LoRaWAN connectivity in the Portal. Internally, the LoRaWAN connectivity is expected to be provided by IoTEdge LoRaWAN StarterKit. The IoT Hub portal will manage devices by modifying their twin properties to make them working with this solution.

Note: to disable LoRa Features, change the value of LoRaFeature__Enabled to false in the Portal App Settings.

"},{"location":"concepts/#lorawan-device-models","title":"LoRaWAN Device Models","text":"

For regular Device Models the IoT hub portal provides the possibility to manage LoRaWAN device models. To activate the LoRaWAN features on the device model, the user have to enable the option in the LoRa Device section

Note: once activated, the device model detail adds a new tab called \"LORAWAN\" that adds new settings to the device model.

"},{"location":"concepts/#lorawan-device-model-parameters","title":"LoRaWAN Device Model Parameters","text":"

The parameters for the device models are parameters that are stored in the IoT Hub portal and retrieved for devices that inherits from this device model.

Note: When changing the value of a parameter, the device will be updated with the new value. In that case, user should then modify each device and re-save it to get the correct properties.

  • Support OTAA/ABP setting: The device model supports OTAA/ABP connectivity.
  • Type: The LoRaWAN device class type (A or C).
  • Message Deduplication: Allows controlling the handling of duplicate messages received by multiple gateways.The default is Drop.
  • OTAA AppEUI: The device model OTAA App EUI used for the device during the OTAA Join procedure.
  • Sensor Decoder URL: The Sensor Decoder URL that the network server should use to decode frames comming from the devices that inherit from this model.
  • Device Connection Timeout: Allows defining a sliding expiration to the connection between the leaf device and IoT/Edge Hub. The default is none, which causes the connection to not be dropped.
  • Support downstream messages: Allows controlling the support of downstream messages. The default is false.
  • Preferred receive window: Allows setting the device preferred receive window (RX1 or RX2). The default preferred receive window is 1
  • RX Delay: Allows setting a custom wait time between receiving and transmission as specified in the specification.
  • RX1 Data offset: Allows setting a custom data offset for the RX1 receive window. The default is 0.
  • RX2 Data rate: Allows setting a custom data rate for the RX2 receive window. The default is 0.
  • 32bit counter support: Allow the usage of 32bit counters on your device.
  • Frame counter up start value: Allows setting the frame counter start value for upstream messages. The default is 0.
  • Frame counter down start value: Allows setting the frame counter start value for downstream messages. The default is 0.
  • Frame counter reset value: Allows to reset the frame counters to the FCntUpStart/FCntDownStart values respectively.

Note: for more information about LoRaWAN properties, please refer to the LoRaWAN StarterKit Documentation

"},{"location":"concepts/#commands","title":"Commands","text":"

The devices commands are pre-stored frames that the user can add to the device model and then will be able to use on the device detail page to launch to the device.

  • Name: The command name. This name is only a friendly name that the user can set to understand what the command is supposed to do.
  • Frame: The LoRaWAN frame (in hex) to be sent to the device.
"},{"location":"concepts/#lorawan-devices","title":"LoRaWAN Devices","text":"

LoRaWAN devices are accessible from the IoT Hub portal for devices that inherits from the LoRaWAN device model. The LoRaWAN tab shows the device details.

Note: By selecting the correct device model on the first tab, the portal will automatically take LoRaWAN settings from the device model to apply on the device.

"},{"location":"concepts/#concentrators","title":"Concentrators","text":""},{"location":"concepts/#concentrator-parameters","title":"Concentrator Parameters","text":"
  • Device ID: The Station EUI for the LoRaWan Basic station.
  • Device Name: The friendly name for the device.
  • Client Certificate Thumbprint: The client certificate thumbprint used by the Basic Station to authenticate to the LoRaWAN Network Server.
  • Region: The LoRaWAN region used by the Basic Station (EU868, US915, AS923 and CN470 supported).
"},{"location":"concepts/#concentrator-tags","title":"Concentrator Tags","text":"

To store additional information about the concentrator, the application will use the target device to extract values:

Name Position Description Device Name tags.deviceName Field that contains the Device name. Region tags.loraRegion Field that contains the Device region. deviceType tags.deviceType Field that contains The type of device. Expected value is LoRa Concentrator"},{"location":"concepts/#command-execution","title":"Command Execution","text":"

To execute the command, the device should have joined the network. The message below explains that the device have to be connected to the network ant commands are disabled until the device is connected to the network.

"},{"location":"concepts/#command-execution-flow","title":"Command execution flow","text":"

The schema below explain how the command execution flow works.

sequenceDiagram User->>+IoT Hub Portal: Send Command (DeviceId, FrameId) IoT Hub Portal->>+LoRa Key Management Facade: POST /api/cloudtodevicemessage LoRa Key Management Facade->>+Azure IoT Hub: Invoke Device Method to Network Server Azure IoT Hub-->>-LoRa Key Management Facade: Cloud To Device Method Result LoRa Key Management Facade-->>-IoT Hub Portal: Send Cloud To Device Message Result IoT Hub Portal-->>-User: Command send result

See https://azure.github.io/iotedge-lorawan-starterkit/2.0.0/quickstart/#cloud-to-device-message for more information about the Cloud To Device Message involed in the LoRa WAN device commands execution flow.

"},{"location":"concepts/#automatic-device-configuration-for-lora-wan","title":"Automatic device configuration for LoRa WAN","text":"

When modifying the device model, the IoT Hub portal will automatically create a new Device Configuration that will target the IoT devices that have the corresponding modelId tag.

The IoT Hub portal will create a new Rollout deployment that will remove older configuration and add the new configuration.

This process ensure that the devices twin will be updated at scale by the IoT hub and each devices that inherit for the model will be updated according the model configuration.

The configuration will be created with the following schema:

JSON
{\n    \"id\": \"<model-name>-<timestamp>\",\n    \"schemaVersion\": \"1.0\",\n    \"labels\": {\n        \"created-by\": \"Azure IoT hub Portal\"\n    },\n    \"content\": {\n        \"deviceContent\": {\n            \"properties.desired.AppEUI\": \"<The Device Model OTAA AppEUI>\",\n            \"properties.desired.SensorDecoder\": \"<The Device Model Sensor Decoder>\"\n        }\n    },\n    \"targetCondition\": \"tags.modelId = '<The model identifier>'\",\n    \"createdTimeUtc\": \"2022-02-28T20:29:39.128Z\",\n    \"lastUpdatedTimeUtc\": \"2022-02-28T20:29:39.128Z\",\n    \"priority\": 0\n}\n

Please note that the created-by label is used to identify the configuration created by the IoT Hub portal.

For more information see Automatic IoT device and module management.

"},{"location":"dev-guide/","title":"Developer Guide","text":""},{"location":"dev-guide/#directory-structure","title":"Directory Structure","text":"

The code is organized into the following directory structure:

  • src: Source code
  • AzureIoTHub.Portal.Server.Tests: Unit test project for the Portal
  • AzureIoTHub.Portal: The Portal project
    • Client: .NET 6 Blazor Web Assembly project that alow to visualize the IoT Hub data
    • Server: .NET 6 Web API project that provides the API for the Portal
    • Shared: Shared code between the Client and Server projects
  • templates: contains the templates for the \"deploy to Azure\" button
"},{"location":"dev-guide/#overall-architecture","title":"Overall Architecture","text":"

This schema represent the various components and how they interact to have a better understanding of the various solution elements.

  1. The user is authenticated by the OpenID Connect server.
  2. The user access to the IoT Hub Portal with the OAuth2.0 token.
  3. The IoT Hub portal uses the Azure IoT Hub REST API to retrieve the data.
  4. The IoT Hub portal uses the Azure Device Provisioning Service to manage IoT Edge devices.
  5. The IoT Hub portal uses the Azure Storage account to store the device models configuration (Images, Commands, etc.).
  6. The IoT Hub portal uses the LoRa Key Management Facade to send Cloud to Device (C2D) messages to LoRa devices.
  7. The LoRa Key Management Facade uses Redis to store its cached data.
  8. The LoRa Key Management Facade uses the Azure IoT Hub REST API to retrieve the LoRa device keys and send C2D messages.
  9. The IoT Hub portal synchronizes its data with the IoT Hub to provide a consistent view of the data.

Note: For more information about the LoRa Key Management Facade, see the Azure IoT Edge LoRaWAN Starter Kit page.

"},{"location":"dev-guide/#prerequisites","title":"Prerequisites","text":"

The following should be completed before proceeding with the IoT Hub Portal development or deployment in your environment.

Before getting started, it is better to master the tools below:

  • Azure platform and Azure IoT Hub. A tutorial can be found here.
  • Blazor WebAssembly and Blazor Server. A traning is available on this site.
  • Docker. An introduction to containerization is available on this page.
  • IoTEdge LoraWAN StarterKit. Have a look at LoRaWAN Starter Kit to get more details on this OSS cross platform private network.

Once you know the basics of these technologies and tools, you must follow these last steps to set up your working environment.

  • IoT Hub Portal uses containers to work correctly. Docker is required to launch this project (version >= 4.11.1).

Once you have download Docker, you must install the WSL 2 Linux kernel. To do that, please refer to the official Microsoft documentation. You can choose the linux distribution of your choice, for example Ubuntu.

  • Node.js is used to run JavaScript code in the portal. You can download the latest version here.The minimal version required is 16.17.0.
  • You must have an Azure subscription. Get an Azure Free account to start.
  • An Identity provider supporting OpenIDConnect protocol configured with 2 applications (API and web) is required to login to the IoT Hub Portal. See Azure AD B2C Tenant with applications configuration page for example.
  • To develop, you can choose your own IDE or text editor, for example Visual Studio.
"},{"location":"dev-guide/#secrets","title":"Secrets","text":"

Secrets are used to fill in the login credentials to the cloud platform. You have to enter them in a json file to be able to connect to the IoT Hub Portal. Here is a template of a such json file :

JSON
{\n  \"StorageAccount:ConnectionString\": \"<CONNECTION_STRING_STORAGE_ACCOUNT>\",\n  \"StorageAccount:BlobContainerName\": \"<BLOB_CONTAINER_NAME>\",\n  \"OIDC:Scope\": \"<SCOPE>\",\n  \"OIDC:MetadataUrl\": \"<METADATA_URL>\",\n  \"OIDC:ClientId\": \"<CLIENT_ID>\",\n  \"OIDC:Authority\": \"<AUTHORITY>\",\n  \"OIDC:ApiClientId\": \"<API_CLIENT_ID>\",\n  \"LoRaRegionRouterConfig:Url\": \"<LORA_WAN_ROUTER_CONFIGURATION_URL>\",\n  \"LoRaKeyManagement:Url\": \"<LORA_WAN_KEY_MANAGEMENT_URL>\",\n  \"LoRaKeyManagement:Code\": \"<LORA_WAN_KEY_MANAGEMENT_CODE>\",\n  \"LoRaFeature:Enabled\": \"<TRUE_OR_FALSE>\",\n  \"Kestrel:Certificates:Development:Password\": \"<DEV_PASSWORD>\",\n  \"IoTHub:ConnectionString\": \"<IOT_HUB_CONNECTION_STRING>\",\n  \"IoTHub:EventHub:Endpoint\": \"<IOT_HUB_EVENT_HUB_ENDPOINT>\",\n  \"IoTHub:EventHub:ConsumerGroup\": \"<IOT_HUB_EVENT_HUB_CONSUMER_GROUP>\",\n  \"IoTDPS:ServiceEndpoint\": \"<SERVICE_END_POINT>\",\n  \"IoTDPS:LoRaEnrollmentGroup\": \"<LORA_WAN_ENROLLMENT_GROUP>\",\n  \"IoTDPS:DefaultEnrollmentGroup\": \"<LORA_WAN_DEFAULT_ENROLLMENT_GROUP>\",\n  \"IoTDPS:ConnectionString\": \"<IOT_DPS_CONNECTION_STRING>\",\n  \"PostgreSQL:ConnectionString\": \"<POSTGRE_SQL_CONNECTION_STRING>\"\n}\n

Note: You must replace all values in the brackets by your own Azure settings. If you can't find them in the Azure Portal, please contact an administrator of this project to have more information.

This json file must be added into your project solution. To do that, click on the AzureIoTHub.Server project in Visual Studio and select Manage User Secrets from the context menu. You can now add your secrets inside this file.

You are now ready to start your IoT Hub Portal development !

"},{"location":"dev-guide/#iot-hub-portal-configuration","title":"IoT Hub Portal Configuration","text":"

By deploying the IoT Hub Portal, the user can configure the IoT Hub and the LoRaWAN network.

Since the IoT Hub Portal is deployed as a Docker container, the application settings can be configured with environment variables.

"},{"location":"dev-guide/#application-settings","title":"Application settings","text":"

Here are different settings that the user can configure:

  • PortalName: The name of the portal (shown in the App Bar and the Page Title).
  • OIDC__Authority: The OpenID Connect issuer.
  • OIDC__MetadataUrl: The OpenID Connect metadata URL (e.g. .well-known/openid-configuration).
  • OIDC__ClientId: The OpenID Connect client ID for the Web UI.
  • OIDC__ApiClientId: The OpenID Connect client ID for the API.
  • OIDC__Scope: The OpenID Connect scope that represents the portal API.
  • IoTDPS__ServiceEndpoint: The IoT Device Provisioning Service endpoint.
  • IoTDPS__IDScope: The IoT Device Provisioning Service ID scope.
  • LoRaFeature__Enabled: Whether the LoRaWAN feature is enabled or not.
  • LoRaKeyManagement__Url: The LoRa Key Management Facade URL.
  • StorageAccount__BlobContainerName: The name of the Azure Storage container where the device models images are stored.
  • IoTHub__EventHub__Endpoint: The IotHub Event Hub compatible endpoint.
  • IoTHub__EventHub__ConsumerGroup: (Default value iothub-portal) The name of the consumer group used to to pull data from the IoT Hub (Automatically created by the Bicep/ARM deployement)
  • ASPNETCORE_ENVIRONMENT: Built-in environment variable, used to target the configuration provided by a specific environment. Two accepted values:
  • Development: On this environment, logs are produced up to Debug level.
  • Production: Default value if ASPNETCORE_ENVIRONMENT is not set. On this environment, logs are produced up to Information level.
  • Metrics__ExporterRefreshIntervalInSeconds: (Optional, default value 30) The refresh interval in seconds to collect custom metrics and expose them to the exporter endpoint.
  • Metrics__LoaderRefreshIntervalInMinutes: (Optional, default value 10) The refresh interval in minutes to calculate/refresh custom metrics values.
  • Ideas__Enabled: (Optional, default value false) To enable Ideas feature when set to true.
  • Ideas__Url: Url of Awesome-Ideas, to publish ideas submitted by users.
  • Ideas__Authentication__Header: (Optional, default value Ocp-Apim-Subscription-Key) Authentication header name.
  • Ideas__Authentication__Token: Authentication token.
  • Job__SyncDatabaseJobRefreshIntervalInMinutes: (Optional, default value 5) The refresh interval in minutes to collect data from Azure IoT Hub (Devices, Iot Edge Devices...) and store them on the database of the Portal.
"},{"location":"dev-guide/#connection-strings","title":"Connection strings","text":"

Here are different connection strings that the user can configure:

  • IoTHub__ConnectionString: The connection string to the IoT Hub.
  • IoTDPS__ConnectionString: The connection string to the Azure IoT Device Provisioning Service.
  • StorageAccount__ConnectionString: The connection string to the Azure Storage account.
  • LoRaKeyManagement__Code: The LoRa Key Management Facade code.
  • PostgreSQL__ConnectionString: The connection string allowing the connection to the PostgreSQL database.

Note: For a production environment, an Azure Key Vault is advised to store the connection strings.

"},{"location":"dev-guide/#optional-security-settings","title":"Optional Security Settings","text":"

There are several optional security settings that the user can configure. These settings are not required for the Portal to work. By default the Portal is configured to set security levels to Microsoft.IdentityModel.Tokens defaults but the user can override these settings.

  • UseSecurityHeaders

    This boolean adds the following headers to all responses :

    X-Content-Type-Options: nosniff

    Strict-Transport-Security: max-age=31536000; includeSubDomains - only applied to HTTPS responses

    X-Frame-Options: Deny - only applied to text/html responses

    X-XSS-Protection: 1; mode=block - only applied to text/html responses

    Referrer-Policy: strict-origin-when-cross-origin - only applied to text/html responses

    Content-Security-Policy: object-src 'none'; form-action 'self'; frame-ancestors 'none' - only applied to text/html responses.

    The default is true.

  • OIDC__ValidateIssuer

    Validation of the issuer mitigates forwarding attacks that can occur when an IdentityProvider represents multiple tenants and signs tokens with the same keys. It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. An application that accepts tokens from fabrikam could forward them to the application that accepts tokens for contoso. This boolean only applies to default issuer validation. If IssuerValidator is set, it will be called regardless of whether this property is true or false.

    The default is true.

  • OIDC__ValidateAudience

    Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. A forwarded token would contain the audience of the original site. This boolean only applies to default audience validation. If AudienceValidator is set, it will be called regardless of whether this property is true or false.

    The default is true.

  • OIDC__ValidateLifetime

    This boolean only applies to default lifetime validation. If LifetimeValidator is set, it will be called regardless of whether this property is true or false.

    The default is true.

  • OIDC__ValidateIssuerSigningKey

    It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. This boolean only applies to default signing key validation. If IssuerSigningKeyValidator is set, it will be called regardless of whether this property is true or false.

    The default is false.

  • OIDC_ValidateActor

    If an actor token is detected, whether it should be validated.

    The default is false.

  • OIDC_ValidateTokenReplay

    This boolean only applies to default token replay validation. If TokenReplayValidator is set, it will be called regardless of whether this property is true or false.

    The default is false.

"},{"location":"dev-guide/#device-tags","title":"Device tags","text":"

The IoT Hub portal uses some tags to configure the devices. The tags are stored in the Azure IoT Hub in Device Twins.

  • modelId: The device model ID that is used to retrieve the device model configuration.
"},{"location":"dev-guide/#storage-account","title":"Storage Account","text":"

The Storage Account is used to store the device models images. You can use the same Storage Account that is used by the LoRa Key Management Facade. This solution will use tables and blob storage to store its data. There is no need to create the containers, the application will do it for you.

"},{"location":"dev-guide/#blob-storage","title":"Blob Storage","text":"

The application uses the following blob storage:

  • device-images: The blob storage that contains the device images.
"},{"location":"dev-guide/#working-with-the-documentation","title":"Working with the documentation","text":"

This documentation site is build using Material for MkDocs and Mike.

docs/main is a detached branch that is locked and only accepts PRs. On PR merge, Github Pages will automatically update the documentation website.

"},{"location":"dev-guide/#how-to-update-the-documentation","title":"How to update the documentation","text":"
  1. Checkout the branch that contains the documentation:

    Bash Session
    git checkout origin/docs/main\ngit checkout -b docs/<your_branch_name> \n
  2. Install dependencies

    Bash Session
    pip install -r requirements.txt\n
  3. Previewing as you write

    Bash Session
    mkdocs serve\n
  4. PRs are gated by a markdownlint check. You should use markdownlint to lint any new changes on documentation. For example you can use the vs code extension https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint

  5. Update the documentation
  6. Commit your changes
  7. Push your changes to the branch
  8. Create a PR
"},{"location":"dev-guide/#customization","title":"Customization","text":"

Refer to Material for MkDocs documentations:

  • https://squidfunk.github.io/mkdocs-material/customization
  • https://squidfunk.github.io/mkdocs-material/setup
"},{"location":"dev-guide/#versioning","title":"Versioning","text":"

Mike is used to generate automatically a new documentation version when a release has been published, using ci/cd pipelines.

For manual workflows (e.g. delete or retitle an existing version), please refer to Mike documentation

"},{"location":"dev-guide/#problem-details","title":"Problem Details","text":"

On IoT Hub Portal, we use the library Hellang.Middleware.ProblemDetails which implements RFC7807 to describe issues/problems that occurred on backend.

"},{"location":"dev-guide/#handle-a-new-exception-using-problem-details","title":"Handle a new exception using Problem Details","text":"
  • Create a new exception which extends BaseException. For example see \ud83d\udc49 InternalServerErrorException
  • On Startup class, within the instruction services.AddProblemDetails(): > Your new exception is already catched by the middleware Problem Details because its extends the exception BaseException. > If you want override the behavior of the middleware when processing your exception, you have to add a new mapping within it.

\ud83d\udca1 You can also map exceptions from dotnet framework and third parties.

"},{"location":"dev-guide/#handle-problem-details-exceptions-on-frontend","title":"Handle Problem Details exceptions on frontend","text":"

On frontend, http client uses a delegating handler ProblemDetailsHandler to:

  • Execute the http request and wait the response
  • If the response is not successful:
  • The body of the response is deserialized to ProblemDetailsWithExceptionDetails
  • An exception with type ProblemDetailsException (including the error response) is thrown.

On Blazor views, http calls must be catched to capture any exceptions of type ProblemDetailsException to be able to execute any business code to process them.

When an http call fails, the user must be notified visually by the application: A component Error has been made to respond to this use case. Below an example on how to:

  • Catch an ProblemDetailsException when making a http call
  • Delegate the exception to the Error component, so that it can visually warn the user
C#
@code {\n    // Inject the reference to the Error component as a cascading parameter\n    [CascadingParameter]\n    public Error Error {get; set;}\n\n    private await Task GetData()\n    {\n        try\n        {\n            // Execute an http request\n        }\n        catch (ProblemDetailsException exception)\n        {\n            // Pass the ProblemDetailsException exception to Error component using its method ProcessProblemDetails()\n            // The Error component will alert the user by showing a (snackbar/dialog) using the content of the exception\n            Error?.ProcessProblemDetails(exception)\n        }\n    }\n}\n
"},{"location":"dev-guide/#how-to-install-entity-framework-core","title":"How to install Entity Framework Core","text":"

Follow the next step to install EF Core:

  1. Open the terminal and run this command:

    Bash Session
    dotnet tool install --global dotnet-ef\n
"},{"location":"dev-guide/#how-to-create-entityframework-migrations-for-postgresql-and-mysql","title":"How to create EntityFramework migrations for PostgreSQL and MySQL","text":"

For the project need, we need two database providers which are PostgreSQL and MySQL, which led us to review the architecture set up for the EntityFramework migrations. Here is a diagram showing the two architectures.

C4Deployment\n  title Architecture for multiple providers\n\n  Deployment_Node(provider1, \"Provider1\", \"Provider1\"){\n    Container(provider1dbcontextfactory, \"Provider1DbContextFactory\", \"File\", \"\")\n    Container(provider1migrations, \"Provider1Migrations\", \"Folder\", \"\")\n  }\n\n  Deployment_Node(provider2, \"Provider2\", \"Provider2\"){\n    Container(provider2dbcontextfactory, \"Provider2DbContextFactory\", \"File\", \"\")\n    Container(provider2migrations, \"Provider2Migrations\", \"Folder\", \"\")\n  }\n\n  Deployment_Node(dal, \"Infrastructure Layer\", \"Dal\"){\n    Container(dbcontext, \"DbContext\", File, \"\")\n  }\n\n  Rel(provider1dbcontextfactory, dbcontext, \"dependency\", \"\")\n  Rel(provider2dbcontextfactory, dbcontext, \"dependency\", \"\")

Follow the next steps to create EF migration:

  1. Go into the Server project folder with terminal

    Bash Session
    cd .\\IoTHub.Portal.Server\\\n
  2. Execute this command for PostgreSQL provider

    Bash Session
    dotnet ef migrations add \"<nameofyourmigration>\" -p ..\\IoTHub.Portal.Postgres\\ -v -- --DbProvider PostgreSQL\n
  3. Execute this command for MySQL provider

    Bash Session
    dotnet ef migrations add \"<nameofyourmigration>\" -p ..\\IoTHub.Portal.MySql\\ -v -- --DbProvider MySQL\n
  4. Open the created migration and follow the following steps:

    1. Move the using directive into the namespace directive

    2. Add \"_ =\" before each statement of the Up and Down methods

    3. Add the CGI copyright to the top of the file

"},{"location":"open-api/","title":"Web API Reference","text":""},{"location":"about/credits/","title":"Credits","text":"
  • Azure IoT Edge LoRaWAN Starter Kit
"},{"location":"about/issues/","title":"Known Issues and Limitations","text":"

Refer to Known Issues for known issues, gotchas and limitations.

"},{"location":"about/license/","title":"MIT License","text":"

Copyright \u00a9 2021 CGI France

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

"},{"location":"about/support/","title":"Support","text":"

This is an open source solution. For bugs and issues with the codebase please log an issue in this repo.

"},{"location":"dev-guide/conception/diagrams/","title":"Diagrams","text":"

In order to better understand the needs of the project, here is a use case diagram regrouping the current use cases of the project.

"},{"location":"dev-guide/conception/diagrams/#connected-objects","title":"Connected objects","text":"
graph LR\n    A[End user] --> B(Display the list of connected objects)\n    A --> C(Add a connected object)\n    C -->|Extend| B\n    D(Import a list of connected objects) -->|Extend| B\n    E(Download a model) -->|Extend| B\n    F(Export the list of connected objects) -->|Extend| B\n    G(Delete a connected object) -->|Extend| B\n    H(Go to the details of a connected object) -->|Extend| B\n    I(Search for connected objects) -->|Extend| B
"},{"location":"dev-guide/conception/diagrams/#connected-object-models","title":"Connected object models","text":"
graph LR\n    A[End user] --> J(Display the list of connected object models)\n    A --> K(Add a connected object model)\n    K -->|Extend| J\n    L(Delete a connected object model) -->|Extend| J\n    M(Go to the details of a connected object model) -->|Extend| J
"},{"location":"dev-guide/conception/diagrams/#connected-object-configurations","title":"Connected object configurations","text":"
graph LR\n    A[End user] --> N(Display the list of connected object configurations)\n    A --> O(Add a connected object configuration)\n    O -->|Extend| N\n    P(Go to the details of a connected object configuration) --> |Extend| N
"},{"location":"dev-guide/conception/diagrams/#edge-connected-object-models","title":"Edge connected object models","text":"
graph LR\n    A[End user] --> Q(Display the list of Edge connected object models)\n    R(Add an Edge connected object model) -->|Extend| Q\n    S(Delete an Edge connected object model) -->|Extend| Q\n    T(Go to the details of a model of Edge connected object) -->|Extend| Q\n    U(Search for Edge connected object models) -->|Extend| Q
"},{"location":"dev-guide/conception/diagrams/#edge-connected-objects","title":"Edge connected objects","text":"
graph LR\n    A[End user] --> V(Display the list of Edge connected objects)\n    W(Add an Edge connected object) -->|Extend| V\n    X(Delete an Edge connected object) -->|Extend| V\n    Y(Go to the details of a connected object Edge) -->|Extend| V\n    Z(Search for Edge connected objects) -->|Extend| V
"},{"location":"dev-guide/conception/diagrams/#concentrators","title":"Concentrators","text":"
graph LR\n    A[End user] --> AA(Display the list of concentrators)\n    AB(Add a concentrator) -->|Extend| AA\n    AC(Delete a concentrator) -->|Extend| AA\n    AD(Go to the details of a concentrator) -->|Extend| AA
"},{"location":"dev-guide/conception/diagrams/#tags","title":"Tags","text":"
graph LR\n    A[End user] --> AE(Display the list of tags)\n    AF(Add a tag) -->|Extend| AE\n    AG(Delete a tag) -->|Extend| AE

Now, here is a diagram representing the multilayer technical architecture of the project.

C4Deployment\n    title Multilayer technical architecture\n\n    Deployment_Node(api, \"Server\", \"API\"){\n        Container(controllers, \"Controllers\", \"C#\", \"They are used to route HTTP requests, they call the methods of the services and they return the content of the HTTP response as well as a HTTP code.\")\n        Container(services, \"Services\", \"C#\", \"They are used to define the business logic as to call the methods of the data access layer for example.\")\n    }\n\n    Deployment_Node(bll, \"Application\", \"BLL\"){\n        Container(iservices, \"Services\", C#, \"This package represents the interfaces of the services.\")\n    }\n\n    Deployment_Node(dal, \"Infrastructure\", \"DAL\"){\n        Deployment_Node(uow, \"UnitOfWork\", \"UOW\"){\n            Container(repositories, \"Repositories\", \"C# and EntityFramework\", \"A repository represents all the data management methods of an entity of the project.\")\n        }\n    }\n\n    Deployment_Node(domain, \"Domain\", \"Domain\"){\n        Container(entities, \"Entities\", \"C#\", \"They are used as object representation of tables in a database.\")\n        Container(irepositories, \"Repositories\", \"C#\", \"This package represents the interfaces of the repositories.\")\n    }\n\n    Rel(iservices, services, \"dependency\", \"\")\n    Rel(repositories, services, \"dependency\", \"\")\n    Rel(entities, services, \"dependency\", \"\")\n    Rel(entities, iservices, \"dependency\", \"\")\n    Rel(iservices, repositories, \"dependency\", \"\")\n    Rel(entities, repositories, \"dependency\", \"\")

Now, to better understand the technical architecture of the project, here is a class diagram representing it.

classDiagram\n    direction LR\n    class AdminController{\n        -String value\n    }\n    class DashboardController{\n        -String value\n    }\n    class DeviceConfigurationsController{\n        -String value\n    }\n    class DeviceModelControllerBase{\n        -String value\n    }\n    class DeviceModelPropertiesController{\n        -String value\n    }\n    class DeviceModelPropertiesControllerBase{\n        -String value\n    }\n    class DeviceModelController{\n        -String value\n    }\n    class DevicesController{\n        -String value\n    }\n    class DevicesControllerBase{\n        -String value\n    }\n    class DeviceTagSettingsController{\n        -String value\n    }\n    class EdgeDevicesController{\n        -String value\n    }\n    class EdgeModelsController{\n        -String value\n    }\n    class IdeasController{\n        -String value\n    }\n    class SettingsController{\n        -String value\n    }\n    class LoRaWANCommandsController{\n        -String value\n    }\n    class LoRaWANConcentratorsController{\n        -String value\n    }\n    class LoRaWANDeviceModelsController{\n        -String value\n    }\n    class LoRaWANDevicesController{\n        -String value\n    }\n    class LoRaWANFrequencyPlansController{\n        -String value\n    }\n    LoRaWANDeviceModelsController --|> DeviceModelsControllerBase\n    LoRaWANDevicesController --|> DevicesControllerBase\n    DeviceModelPropertiesController --|> DeviceModelPropertiesControllerBase\n    DeviceModelsController --|> DeviceModelsControllerBase\n    DevicesController --|> DevicesControllerBase\n    class ConfigService{\n        -String value\n    }\n    class DeviceConfigurationsService{\n        -String value\n    }\n    class DeviceModelPropertiesService{\n        -String value\n    }\n    class DeviceModelService{\n        -String value\n    }\n    class DevicePropertyService{\n        -String value\n    }\n    class DeviceService{\n        -String value\n    }\n    class DeviceServiceBase{\n        -String value\n    }\n    class DeviceTagService{\n        -String value\n    }\n    class EdgeDevicesService{\n        -String value\n    }\n    class EdgeModelService{\n        -String value\n    }\n    class ExternalDeviceService{\n        -String value\n    }\n    class IdeaService{\n        -String value\n    }\n    class LoRaWANCommandService{\n        -String value\n    }\n    class LoRaWANConcentratorService{\n        -String value\n    }\n    class LoRaWanDeviceService{\n        -String value\n    }\n    class SubmitIdeaRequest{\n        -String value\n    }\n    DeviceService --|> DeviceServiceBase\n    LoRaWanDeviceService --|> DeviceServiceBase\n    class IConfigService\n    <<interface>> IConfigService\n    class IDeviceConfigurationsService\n    <<interface>> IDeviceConfigurationsService\n    class IDeviceModelPropertiesService\n    <<interface>> IDeviceModelPropertiesService\n    class IDeviceModelService\n    <<interface>> IDeviceModelService\n    class IDevicePropertyService\n    <<interface>> IDevicePropertyService\n    class IDeviceService\n    <<interface>> IDeviceService\n    class IDeviceTagService\n    <<interface>> IDeviceTagService\n    class IEdgeDevicesService\n    <<interface>> IEdgeDevicesService\n    class IEdgeModelService\n    <<interface>> IEdgeModelService\n    class IExternalDeviceService\n    <<interface>> IExternalDeviceService\n    class IIdeaService\n    <<interface>> IIdeaService\n    class ILoRaWANCommandService\n    <<interface>> ILoRaWANCommandService\n    class ILoRaWANConcentratorService\n    <<interface>> ILoRaWANConcentratorService\n    class ILoRaWanManagementService\n    <<interface>> ILoRaWanManagementService\n    ConfigService ..|> IConfigService\n    DeviceConfigurationsService ..|> IDeviceConfigurationsService\n    DeviceModelPropertiesService ..|> IDeviceModelPropertiesService\n    DeviceModelService ..|> IDeviceModelService\n    DevicePropertyService ..|> IDevicePropertyService\n    DeviceServiceBase ..|> IDeviceService\n    DeviceTagService ..|> IDeviceTagService\n    EdgeDevicesService ..|> IEdgeDevicesService\n    EdgeModelService ..|> IEdgeModelService\n    ExternalDeviceService ..|> IExternalDeviceService\n    IdeaService ..|> IIdeaService\n    LoRaWANCommandService ..|> ILoRaWANCommandService\n    LoRaWANConcentratorService ..|> ILoRaWANConcentratorService\n    class ConcentratorRepository{\n        -String value\n    }\n    class DeviceModelCommandRepository{\n        -String value\n    }\n    class DeviceModelPropertiesRepository{\n        -String value\n    }\n    class DeviceModelRepository{\n        -String value\n    }\n    class DeviceRepository{\n        -String value\n    }\n    class DeviceTagRepository{\n        -String value\n    }\n    class DeviceTagValueRepository{\n        -String value\n    }\n    class EdgeDeviceModelCommandRepository{\n        -String value\n    }\n    class EdgeDeviceModelRepository{\n        -String value\n    }\n    class EdgeDeviceRepository{\n        -String value\n    }\n    class GenericRepository{\n        -String value\n    }\n    class LabelRepository{\n        -String value\n    }\n    class LoRaDeviceTelemetryRepository{\n        -String value\n    }\n    class LorawanDeviceRepository{\n        -String value\n    }\n    class UnitOfWork{\n        -String value\n    }\n    class IConcentratorRepository\n    <<interface>> IConcentratorRepository\n    class IDeviceModelCommandRepository\n    <<interface>> IDeviceModelCommandRepository\n    class IDeviceModelPropertiesRepository\n    <<interface>> IDeviceModelPropertiesRepository\n    class IDeviceModelRepository\n    <<interface>> IDeviceModelRepository\n    class IDeviceRepository\n    <<interface>> IDeviceRepository\n    class IDeviceTagRepository\n    <<interface>> IDeviceTagRepository\n    class IDeviceTagValueRepository\n    <<interface>> IDeviceTagValueRepository\n    class IEdgeDeviceModelCommandRepository\n    <<interface>> IEdgeDeviceModelCommandRepository\n    class IEdgeDeviceModelRepository\n    <<interface>> IEdgeDeviceModelRepository\n    class IEdgeDeviceRepository\n    <<interface>> IEdgeDeviceRepository\n    class ILabelRepository\n    <<interface>> ILabelRepository\n    class ILoRaDeviceTelemetryRepository\n    <<interface>> ILoRaDeviceTelemetryRepository\n    class ILorawanDeviceRepository\n    <<interface>> ILorawanDeviceRepository\n    class IRepository\n    <<interface>> IRepository\n    class IUnitOfWork\n    <<interface>> IUnitOfWork\n    UnitOfWork ..|> IUnitOfWork\n    ConcentratorRepository ..|> IConcentratorRepository\n    ConcentratorRepository --|> GenericRepository\n    DeviceModelCommandRepository ..|> IDeviceModelCommandRepository\n    DeviceModelCommandRepository --|> GenericRepository\n    DeviceModelPropertiesRepository ..|> IDeviceModelPropertiesRepository\n    DeviceModelPropertiesRepository --|> GenericRepository\n    DeviceModelRepository ..|> IDeviceModelRepository\n    DeviceModelRepository --|> GenericRepository\n    DeviceRepository ..|> IDeviceRepository\n    DeviceRepository --|> GenericRepository\n    DeviceTagRepository ..|> IDeviceTagRepository\n    DeviceTagRepository --|> GenericRepository\n    DeviceTagValueRepository ..|> IDeviceTagValueRepository\n    DeviceTagValueRepository --|> GenericRepository\n    EdgeDeviceModelCommandRepository ..|> IEdgeDeviceModelCommandRepository\n    EdgeDeviceModelCommandRepository --|> GenericRepository\n    EdgeDeviceModelRepository ..|> IEdgeDeviceModelRepository\n    EdgeDeviceModelRepository --|> GenericRepository\n    EdgeDeviceRepository ..|> IEdgeDeviceRepository\n    EdgeDeviceRepository --|> GenericRepository\n    GenericRepository ..|> IRepository\n    LabelRepository ..|> ILabelRepository\n    LabelRepository --|> GenericRepository\n    LoRaDeviceTelemetryRepository ..|> ILoRaDeviceTelemetryRepository\n    LoRaDeviceTelemetryRepository --|> GenericRepository\n    LorawanDeviceRepository ..|> ILorawanDeviceRepository\n    LorawanDeviceRepository --|> GenericRepository
"},{"location":"dev-guide/migrations/v3-to-v4/","title":"Migrate from v3 to v4","text":"

To migrate from v3 to v4 manually, you have to add two new settings to the portal web app. These two settings are required to to pull devices telemetry from the IoT Hub:

Name Setting Type Detail IoTHub__EventHub__ConsumerGroup Application setting (Default value iothub-portal) The name of the consumer group used to to pull data from the IoT Hub IoTHub__EventHub__Endpoint Connection string The IotHub Event Hub compatible endpoint

Below the required steps for each settings:

"},{"location":"dev-guide/migrations/v3-to-v4/#iothub__eventhub__consumergroup","title":"IoTHub__EventHub__ConsumerGroup","text":"
  1. Go to your IoT Hub
  2. Navigate to menu Built-in endpoints
  3. Create a consumer group with the name iothub-portal
  4. Back to the portal web app, add a new application setting with name IoTHub__EventHub__ConsumerGroup and with value iothub-portal
"},{"location":"dev-guide/migrations/v3-to-v4/#iothub__eventhub__endpoint","title":"IoTHub__EventHub__Endpoint","text":"
  1. Go to your IoT Hub
  2. Navigate to menu Built-in endpoints
  3. On the section Event Hub compatible endpoint
    1. Select the shared access policy service
    2. Copy the value of the event Hub-compatible endpoint
  4. Back to the portal web app, add a new connection setting with name IoTHub__EventHub__Endpoint and with value the event Hub-compatible endpoint copied earlier

Info

You can create your own shared access policy. But the portal needs at least the Service Connect permission

"},{"location":"dev-guide/migrations/v4-to-v5/","title":"Migrate from v4 to v5","text":"

In this v5, the major change is the integration of AWS in the portal. Some changes have also been made at the portal web app settings.

"},{"location":"dev-guide/migrations/v4-to-v5/#aws","title":"AWS","text":"

Starting from version 5, the portal now supports AWS integration. To learn how to deploy AWS services using the portal, please refer to the Quick Start for AWS documentation. It provides step-by-step instructions on setting up and deploying AWS resources using the portal's interface.

"},{"location":"dev-guide/migrations/v4-to-v5/#azure","title":"Azure","text":"

To migrate from v4 to v5 manually, you have to add CloudProvider with Azure as default value. You have to add also Azure__ prefix in all setting to the portal web app.

Name Setting Type Detail CloudProvider Application setting (Possible value Azure) The name of the CLoud Provider to run in the portal Azure__LoRaRegionRouterConfig__Url Application setting The Url for LoRa Region Router Configuration Azure__LoRaKeyManagement__Url Application setting The Url for LoRa Key Management Azure__LoRaKeyManagement__Code Application setting The Code for LoRa Key Management Azure__LoRaFeature__Enabled Application setting To enable or disable LoRa Feature Azure__IoTHub__ConnectionString Connection string The IotHub Connection String Azure__IoTHub__EventHub__Endpoint Connection string The IotHub Event Hub compatible endpoint Azure__IoTHub__EventHub__ConsumerGroup Application setting (Default value iothub-portal) The name of the consumer group used to to pull data from the IoT Hub Azure__IoTDPS__ServiceEndpoint Application setting The IotDPS Service Endpoint Azure__IoTDP__LoRaEnrollmentGroup Application setting The name of the IotDPS LoRa Enrollment group Azure__IoTDPS__DefaultEnrollmentGroup Application setting The name of the default IotDPS Enrollment group Azure__IoTDPS__ConnectionString Connection string The IotDPS Connection String Azure__StorageAccount__ConnectionString Connection string The Storage Account Connection String"},{"location":"dev-guide/testing/unit-tests-common-practices/","title":"Unit Tests Common Practices","text":""},{"location":"dev-guide/testing/unit-tests-common-practices/#naming-conventions","title":"Naming Conventions","text":""},{"location":"dev-guide/testing/unit-tests-common-practices/#test-class","title":"Test class","text":"

The test class should follow the naming convention [ClassUnderTest]Tests.

Example: The test class for a class named ProductController should be named ProductControllerTests:

C#
[TestFixture]\npublic class ProductControllerTests\n{\n    ...\n}\n
"},{"location":"dev-guide/testing/unit-tests-common-practices/#test-method","title":"Test method","text":"

The test method should follow the naming convention [MethodUnderTest]_[BehaviourToTest]_[ExpectedResult].

Example: A method named GetProduct should be tested to see if it returns an existing product. The name of the test should be GetProduct_ProductExist_ProductReturned:

C#
[Test]\npublic async Task GetProduct_ProductExist_ProductReturned()\n{\n    ...\n}\n
"},{"location":"dev-guide/testing/unit-tests-common-practices/#unit-test-skeleton-three-stepsparts","title":"Unit Test Skeleton: Three Steps/Parts","text":"

A unit test should be devided into three steps:

  1. Arrange: The first part where the input/expected data are defined
  2. Act: The second part where the behavior under test is executed
  3. Assert: The third and final part where assertions are made

These three parts are visually defined with comments so that unit tests are humanly comprehensible:

C#
[Test]\npublic async Task GetProduct_ProductExist_ProductReturned()\n{\n    // Arrange\n    var productId = Guid.NewGuid().ToString();\n    var expectedProduct = new Product\n    {\n        Id = productId\n    };\n\n    // Act\n    var product = this.productService.GetProduct(productId);\n\n    // Asset\n    _ = product.Should().BeEquivalentTo(expectedProduct);\n}\n

Tip

On the IoT Hub portal, we use the fluentassertions library for unit tests for natural/human reusable assertions.

"},{"location":"dev-guide/testing/unit-tests-common-practices/#mock","title":"Mock","text":"

A unit test should only test its assigned layer. Any lower layer that requires/interacts with external resources should be mocked to ensure sure that the unit tests are idempotent.

Note

Example: We want to implement unit tests for a controller that requires three services. Each service depends on other services/repositories/http clients that need external resources like databases, APIs... Any execution of unit tests that depend on these external resources can be altered (not idempotent) because they depend on the uptime and data of these resources.

On the IoT Hub portal, we use the library Moq for mocking within unit tests:

C#
[TestFixture]\npublic class ProductControllerTests\n{\n    private MockRepository mockRepository;\n    private Mock<IProductRepository> mockProductRepository;\n\n    private IProductService productService;\n\n    [SetUp]\n    public void SetUp()\n    {\n        // Init MockRepository with strict behaviour\n        this.mockRepository = new MockRepository(MockBehavior.Strict);\n        // Init the mock of IProductRepository\n        this.mockProductRepository = this.mockRepository.Create<IProductRepository>();\n        // Init the service ProductService. The object mock ProductRepository is passed the contructor of ProductService\n        this.productService = new ProductService(this.mockProductRepository.Object);\n    }\n\n    [Test]\n    public async Task GetProduct_ProductExist_ProductReturned()\n    {\n        // Arrange\n        var productId = Guid.NewGuid().ToString();\n        var expectedProduct = new Product\n        {\n            Id = productId\n        };\n\n        // Setup mock of GetByIdAsync of the repository ProductRepository to return the expected product when given the correct product id\n        _ = this.mockProductRepository.Setup(repository => repository.GetByIdAsync(productId))\n                .ReturnsAsync(expectedProduct);\n\n        // Act\n        var product = this.productService.GetProduct(productId);\n\n        // Asset\n        _ = product.Should().BeEquivalentTo(expectedProduct);\n\n        // Assert that all mocks setups have been called\n        _ = MockRepository.VerifyAll();\n    }\n}\n
"},{"location":"dev-guide/testing/unit-tests-on-blazor-components/","title":"Unit Tests on Blazor components","text":"

Info

To test Blazor components on the Iot Hob Portal, we use the library bUnit

"},{"location":"dev-guide/testing/unit-tests-on-blazor-components/#how-to-unit-test-component","title":"How to unit test component","text":"

Let us assume we have a compoment ProductDetail to test.

Example of the content of the component ProductDetail
@inject IProductService ProductService\n\n@if(product != null)\n{\n    <p id=\"product-id\">@product.Id</p>\n}\n\n@code {\n    [Parameter]\n    public string ProductId { get; set; }\n\n    private Product product;\n\n    protected override async Task OnInitializedAsync()\n    {\n        await GetProduct();\n    }\n\n    private async Task GetProduct()\n    {\n        try\n        {\n            product = await ProductService.GetProduct(ProductId);\n        }\n        catch (ProblemDetailsException exception)\n        {\n            Error?.ProcessProblemDetails(exception);\n        }\n    }\n}\n
First you have to a unit test class that extend
[TestFixture]\npublic class ProductDetailTests : BlazorUnitTest\n{\n}\n

Info

The class BlazorUnitTest provides helpers/test context dedicated for unit tests for the blazor component. It also avoids code duplication of unit test classes.

Override the method Setup
[TestFixture]\npublic class ProductDetailTests : BlazorUnitTest\n{\n    public override void Setup()\n    {\n        // Don't forget the method base.Setup() to initialize existing helpers\n        base.Setup();\n    }\n}\n
Setup the mockup of the service IProductService
[TestFixture]\npublic class ProductDetailTests : BlazorUnitTest\n{\n    // Declare the mock of IProductService\n    private Mock<IProductService> productServiceMock;\n\n    public override void Setup()\n    {\n        base.Setup();\n\n        // Intialize the mock of IProductService\n        this.productServiceMock = MockRepository.Create<IProductService>();\n\n        // Add the mock of IProductService as a singleton for resolution \n        _ = Services.AddSingleton(this.productServiceMock.Object);\n    }\n}\n

Info

After configuring the test class setup, you can start implementing unit tests.

Below is an example of a a unit test that checks whether the GetProduct method of the serivce ProductService service was called after the component was initialized:

C#
[TestFixture]\npublic class ProductDetailTests : BlazorUnitTest\n{\n    ...\n\n    [Test]\n    public void OnInitializedAsync_GetProduct_ProductIsRetrieved()\n    {\n        // Arrange\n        var expectedProduct = Fixture.Create<Product>();\n\n        // Setup mock of GetProduct of the service ProductService\n        _ = this.productServiceMock.Setup(service => service.GetProduct(expectedProduct.Id))\n            .ReturnsAsync(expectedProduct);\n\n        // Act\n        // Render the component ProductDetail with the required ProductId parameter\n        var cut = RenderComponent<ProductDetail>(ComponentParameter.CreateParameter(\"ProductId\", expectedProduct.Id));\n        // You can wait for a specific element to be rendered before assertions using a css selector, for example the DOM element with id product-id\n        _ = cut.WaitForElement(\"#product-id\");\n\n        // Assert\n        // Assert that all mocks setups have been called\n        cut.WaitForAssertion(() => MockRepository.VerifyAll());\n    }\n}\n

Tip

WaitForAssertion is useful in asserting asynchronous changes: It will blocks and waits in a test method until the specified assertion action does not throw an exception, or until the timeout is reached (the default timeout is one second). Assertion of asynchronous changes

Tip

Within unit tests on Blazor components, you can interact with HTML DOM and query rendered HTMLelements (buttons, div...) by using CSS selectors (id, class...) Lean more about CSS selectors

"},{"location":"dev-guide/testing/unit-tests-on-blazor-components/#how-to-unit-test-a-component-requiring-an-external-component","title":"How to unit test a component requiring an external component","text":"

Some components proposed by MudBlazor (MudAutocomplete, MudSelect...) use another component MudPopoverProvider to display elements. If in a unit test that uses these MudBlazor components, the MudPopoverProvider component is not rendered, the interactions with these components are restricted.

Let us start with the following example:

Example of the content of the component SearchState
<MudAutocomplete T=\"string\" Label=\"US States\" @bind-Value=\"selectedState\" SearchFunc=\"@Search\" />\n\n@code {\n    private string selectedState;\n    private string[] states =\n    {\n        \"Alabama\", \"Colorado\", \"Missouri\", \"Wisconsin\"\n    }\n\n    private async Task<IEnumerable<string>> Search(string value)\n    {\n        // In real life use an asynchronous function for fetching data from an api.\n        await Task.Delay(5);\n\n        // if text is null or empty, show complete list\n        if (string.IsNullOrEmpty(value)) \n            return states;\n        return states.Where(x => x.Contains(value, StringComparison.InvariantCultureIgnoreCase));\n    }\n}\n

We want to test the search when a user interacts with the MudAutocomplete component to search for the state Wisconsin:

C#
[TestFixture]\npublic class SearchStateTests : BlazorUnitTest\n{\n    ...\n\n    [Test]\n    public void Search_UserSearchAndSelectState_StateIsSelected()\n    {\n        // Arrange\n        var userQuery = \"Wis\";\n\n        // First render MudPopoverProvider component\n        var popoverProvider = RenderComponent<MudPopoverProvider>();\n        // Second, rendrer the component SearchState (under unit test)\n        var cut = RenderComponent<SearchState>();\n\n        // Find the MudAutocomplete component within SearchState component\n        var autocompleteComponent = cut.FindComponent<MudAutocomplete<string>>();\n\n        // Fire click event on, \n        autocompleteComponent.Find(\"input\").Click();\n        autocompleteComponent.Find(\"input\").Input(userQuery);\n\n        // Wait until the count of element in the list rendred on the component MudPopoverProvider is equals to one\n        popoverProvider.WaitForAssertion(() => popoverProvider.FindAll(\"div.mud-list-item\").Count.Should().Be(1));\n\n        // Act\n        // Get the only element present on the list\n        var stateElement = popoverProvider.Find(\"div.mud-list-item\");\n        // Fire click event on the element\n        stateElement.Click();\n\n        // Assert\n        // Check if the MudAutocomplete compoment has been closed after the click event\n        cut.WaitForAssertion(() => autocompleteComponent.Instance.IsOpen.Should().BeFalse());\n        ...\n    }\n}\n
"}]} \ No newline at end of file diff --git a/v6.0.0-beta01/sitemap.xml b/v6.0.0-beta01/sitemap.xml new file mode 100644 index 000000000..0f8724efd --- /dev/null +++ b/v6.0.0-beta01/sitemap.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/v6.0.0-beta01/sitemap.xml.gz b/v6.0.0-beta01/sitemap.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..b651cf069174bdcad23448bf0158934c76a6b533 GIT binary patch literal 127 zcmV-_0D%7=iwFn+?NDa||8r?{Wo=<_E_iKh04<9_3V)_WXo8&M?ytk3HC}0~zlG)Vu Note: if writable, the property is set to the desired properties of the device twin\r\n> otherwise, the property is read from the reported properties.\r\nDefault is false." + }, + "order": { + "type": "integer", + "description": "The property display order.", + "format": "int32" + }, + "propertyType": { + "enum": [ + "Boolean", + "Double", + "Float", + "Integer", + "Long", + "String" + ], + "type": "string", + "description": "The device property type" + } + }, + "additionalProperties": false, + "description": "Device property." + }, + "DevicePropertyValue": { + "required": [ + "displayName", + "isWritable", + "name", + "order", + "propertyType" + ], + "type": "object", + "properties": { + "name": { + "minLength": 1, + "pattern": "^([\\w]+\\.)+[\\w]+|[\\w]+$", + "type": "string", + "description": "The property name" + }, + "displayName": { + "minLength": 1, + "type": "string", + "description": "The property display name" + }, + "isWritable": { + "type": "boolean", + "description": "Indicates whether the property is writable from the portal\r\n> Note: if writable, the property is set to the desired properties of the device twin\r\n> otherwise, the property is read from the reported properties.\r\nDefault is false." + }, + "order": { + "type": "integer", + "description": "The property display order.", + "format": "int32" + }, + "propertyType": { + "enum": [ + "Boolean", + "Double", + "Float", + "Integer", + "Long", + "String" + ], + "type": "string", + "description": "The device property type" + }, + "value": { + "type": "string", + "description": "The current property value.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Device property value." + }, + "DeviceTagDto": { + "required": [ + "label", + "name" + ], + "type": "object", + "properties": { + "name": { + "minLength": 1, + "pattern": "^[a-zA-Z0-9]*$", + "type": "string", + "description": "The registered name in the device twin." + }, + "label": { + "minLength": 1, + "type": "string", + "description": "The label shown to the user." + }, + "required": { + "type": "boolean", + "description": "Whether the field is required when creating a new device or not.\r\nDefault is false.", + "default": false + }, + "searchable": { + "type": "boolean", + "description": "Whether the field can be searcheable via the device search panel or not.\r\nDefault is false.", + "default": false + } + }, + "additionalProperties": false, + "description": "Device tag." + }, + "EdgeModelSystemModule": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "imageUri": { + "type": "string", + "nullable": true + }, + "containerCreateOptions": { + "type": "string", + "nullable": true + }, + "environmentVariables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IoTEdgeModuleEnvironmentVariable" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "FrequencyPlan": { + "type": "object", + "properties": { + "frequencyPlanID": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "IdeaRequest": { + "required": [ + "body", + "title" + ], + "type": "object", + "properties": { + "title": { + "minLength": 1, + "type": "string" + }, + "body": { + "minLength": 1, + "type": "string" + }, + "consentToCollectTechnicalDetails": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "IdeaResponse": { + "type": "object", + "properties": { + "url": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ImportResultLine": { + "type": "object", + "properties": { + "lineNumber": { + "type": "integer", + "format": "int32" + }, + "deviceId": { + "type": "string", + "nullable": true + }, + "message": { + "type": "string", + "nullable": true + }, + "isErrorMessage": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "IoTEdgeDevice": { + "required": [ + "deviceName", + "modelId" + ], + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "The IoT Edge identifier.", + "nullable": true + }, + "deviceName": { + "minLength": 1, + "type": "string", + "description": "The name of the device." + }, + "modelId": { + "minLength": 1, + "type": "string", + "description": "The model identifier." + }, + "imageUrl": { + "type": "string", + "description": "The device model image Url.", + "format": "uri", + "nullable": true + }, + "connectionState": { + "type": "string", + "description": "The IoT Edge connection state.", + "nullable": true + }, + "scope": { + "type": "string", + "description": "The IoT Edge scope tag value.", + "nullable": true + }, + "status": { + "type": "string", + "description": "The IoT Edge device status.", + "nullable": true + }, + "runtimeResponse": { + "type": "string", + "description": "The IoT Edge runtime response.", + "nullable": true + }, + "nbDevices": { + "type": "integer", + "description": "The number of connected devices on IoT Edge device.", + "format": "int32" + }, + "nbModules": { + "type": "integer", + "description": "The number of modules on IoT Edge device.", + "format": "int32" + }, + "lastDeployment": { + "$ref": "#/components/schemas/ConfigItem" + }, + "modules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IoTEdgeModule" + }, + "description": "The IoT Edge modules.", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "List of custom device tags and their values.", + "nullable": true + }, + "isEnabled": { + "type": "boolean", + "description": "`true` if this instance is enabled; otherwise, `false`." + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelDto" + }, + "description": "Labels", + "nullable": true + } + }, + "additionalProperties": false, + "description": "IoT Edge device." + }, + "IoTEdgeDeviceLog": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "text": { + "type": "string", + "nullable": true + }, + "logLevel": { + "type": "integer", + "format": "int32" + }, + "timeStamp": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "IoTEdgeListItem": { + "required": [ + "deviceId" + ], + "type": "object", + "properties": { + "deviceId": { + "minLength": 1, + "type": "string", + "description": "The device identifier." + }, + "deviceName": { + "type": "string", + "description": "The device status.", + "nullable": true + }, + "status": { + "type": "string", + "description": "The device status.", + "nullable": true + }, + "nbDevices": { + "type": "integer", + "description": "The number of devices connected on the IoT Edge.", + "format": "int32" + }, + "imageUrl": { + "type": "string", + "description": "The device model image Url.", + "format": "uri", + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelDto" + }, + "description": "Gets the edge device labels.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "IoT Edge list item." + }, + "IoTEdgeListItemPaginationResult": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IoTEdgeListItem" + }, + "description": "The current page items.", + "nullable": true + }, + "totalItems": { + "type": "integer", + "description": "The total number of items.", + "format": "int32" + }, + "nextPage": { + "type": "string", + "description": "The query next page Url.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class representing the page results." + }, + "IoTEdgeModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "modelId": { + "type": "string", + "description": "The device model identifier.", + "nullable": true + }, + "name": { + "minLength": 1, + "type": "string", + "description": "The IoT Edge device model name." + }, + "description": { + "type": "string", + "description": "The device model description.", + "nullable": true + }, + "imageUrl": { + "type": "string", + "format": "uri", + "nullable": true + }, + "externalIdentifier": { + "type": "string", + "description": "The aws deployment ID.", + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelDto" + }, + "description": "Labels", + "nullable": true + }, + "edgeModules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IoTEdgeModule" + }, + "description": "The device model module list.", + "nullable": true + }, + "edgeRoutes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IoTEdgeRoute" + }, + "nullable": true + }, + "systemModules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeModelSystemModule" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "IoTEdgeModelListItem": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "modelId": { + "type": "string", + "description": "The device model identifier.", + "nullable": true + }, + "name": { + "minLength": 1, + "type": "string", + "description": "The IoT Edge device model name." + }, + "description": { + "type": "string", + "description": "The device model description.", + "nullable": true + }, + "imageUrl": { + "type": "string", + "format": "uri", + "nullable": true + }, + "externalIdentifier": { + "type": "string", + "description": "The aws deployment ID.", + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelDto" + }, + "description": "Gets the edge model labels.", + "nullable": true + } + }, + "additionalProperties": false + }, + "IoTEdgeModule": { + "required": [ + "imageURI", + "moduleName" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The module name, only used for AWS IoT Greengrass.", + "nullable": true + }, + "moduleName": { + "minLength": 1, + "type": "string", + "description": "The module name." + }, + "imageURI": { + "minLength": 1, + "type": "string", + "description": "the device image URI." + }, + "containerCreateOptions": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "description": "The module status.", + "nullable": true + }, + "environmentVariables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IoTEdgeModuleEnvironmentVariable" + }, + "description": "The module environment variables.", + "nullable": true + }, + "moduleIdentityTwinSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IoTEdgeModuleTwinSetting" + }, + "description": "The module identity twin settings.", + "nullable": true + }, + "commands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IoTEdgeModuleCommand" + }, + "description": "The module commands.", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "IoT Edge module." + }, + "IoTEdgeModuleCommand": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The command name", + "nullable": true + }, + "edgeDeviceModelId": { + "type": "string", + "nullable": true + }, + "commandId": { + "type": "string", + "nullable": true + }, + "moduleName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "IoTEdgeModuleEnvironmentVariable": { + "type": "object", + "properties": { + "name": { + "pattern": "^[^\\.^\\$^\\#$\\ ]{1,128}$", + "type": "string", + "description": "The module environment variable name", + "nullable": true + }, + "value": { + "type": "string", + "description": "The module environment variable value", + "nullable": true + } + }, + "additionalProperties": false + }, + "IoTEdgeModuleTwinSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The module identity twin setting name", + "nullable": true + }, + "value": { + "type": "string", + "description": "The module identity twin setting value", + "nullable": true + } + }, + "additionalProperties": false + }, + "IoTEdgeRoute": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "minLength": 1, + "type": "string", + "description": "The route name." + }, + "value": { + "minLength": 1, + "pattern": "^(?i)FROM [\\S]+( WHERE (NOT )?[\\S]+)? INTO [\\S]+$", + "type": "string", + "description": "The route value.\r\nEg : FROM /messages/* INTO $upstream." + }, + "priority": { + "maximum": 9, + "minimum": 0, + "type": "integer", + "description": "The route priority", + "format": "int32", + "nullable": true + }, + "timeToLive": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer", + "description": "The route time to live (secs)", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "LabelDto": { + "required": [ + "color", + "name" + ], + "type": "object", + "properties": { + "name": { + "minLength": 1, + "type": "string" + }, + "color": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, + "LoRaDeviceDetails": { + "required": [ + "deviceID", + "deviceName", + "modelId" + ], + "type": "object", + "properties": { + "classType": { + "enum": [ + "A", + "C" + ], + "type": "string", + "description": "The LoRa device class.\r\nDefault is A.", + "default": "A" + }, + "preferredWindow": { + "type": "integer", + "description": "Allows setting the device preferred receive window (RX1 or RX2).\r\nThe default preferred receive window is 1.", + "format": "int32", + "default": 1 + }, + "deduplication": { + "enum": [ + "None", + "Drop", + "Mark" + ], + "type": "string", + "description": "Allows controlling the handling of duplicate messages received by multiple gateways.\r\nThe default is Drop.", + "default": "Drop" + }, + "rX1DROffset": { + "type": "integer", + "description": "Allows setting an offset between received Datarate and retransmit datarate as specified in the LoRa Specifiations.\r\nValid for OTAA devices.\r\nIf an invalid value is provided the network server will use default value 0.", + "format": "int32", + "default": 0, + "nullable": true + }, + "rX2DataRate": { + "type": "integer", + "description": "Allows setting a custom Datarate for second receive windows.\r\nValid for OTAA devices.\r\nIf an invalid value is provided the network server will use default value 0 (DR0).", + "format": "int32", + "default": 0, + "nullable": true + }, + "rxDelay": { + "type": "integer", + "description": "Allows setting a custom wait time between receiving and transmission as specified in the specification.", + "format": "int32", + "nullable": true + }, + "abpRelaxMode": { + "type": "boolean", + "description": "Allows to disable the relax mode when using ABP.\r\nBy default relaxed mode is enabled.", + "default": true, + "nullable": true + }, + "fCntUpStart": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer", + "description": "Allows to explicitly specify a frame counter up start value.\r\nIf the device joins, this value will be used to validate the first frame and initialize the server state for the device.\r\nDefault is 0.", + "format": "int32", + "default": 0, + "nullable": true + }, + "fCntDownStart": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer", + "description": "Allows to explicitly specify a frame counter down start value.\r\nDefault is 0.", + "format": "int32", + "default": 0, + "nullable": true + }, + "fCntResetCounter": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer", + "description": "Allows to reset the frame counters to the FCntUpStart/FCntDownStart values respectively.\r\nDefault is 0.", + "format": "int32", + "default": 0, + "nullable": true + }, + "supports32BitFCnt": { + "type": "boolean", + "description": "Allow the usage of 32bit counters on your device.", + "default": true, + "nullable": true + }, + "keepAliveTimeout": { + "type": "integer", + "description": "Allows defining a sliding expiration to the connection between the leaf device and IoT/Edge Hub.\r\nThe default is none, which causes the connection to not be dropped.", + "format": "int32", + "default": null, + "nullable": true + }, + "sensorDecoder": { + "type": "string", + "description": "The sensor decoder API Url.", + "nullable": true + }, + "deviceName": { + "minLength": 1, + "type": "string", + "description": "The name of the device." + }, + "modelId": { + "minLength": 1, + "type": "string", + "description": "The model identifier." + }, + "modelName": { + "type": "string", + "description": "The model name.", + "nullable": true + }, + "imageUrl": { + "type": "string", + "description": "The device model image Url.", + "format": "uri", + "nullable": true + }, + "isConnected": { + "type": "boolean", + "description": "`true` if this instance is connected; otherwise, `false`." + }, + "isEnabled": { + "type": "boolean", + "description": "`true` if this instance is enabled; otherwise, `false`." + }, + "statusUpdatedTime": { + "type": "string", + "description": "The status updated time.", + "format": "date-time" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "List of custom device tags and their values.", + "nullable": true + }, + "deviceID": { + "maxLength": -1, + "minLength": 1, + "pattern": "^[A-Z0-9]{16}$", + "type": "string", + "description": "The device identifier." + }, + "useOTAA": { + "type": "boolean", + "description": "A value indicating whether the device uses OTAA to authenticate to LoRaWAN Network, otherwise ABP", + "default": true + }, + "appKey": { + "type": "string", + "description": "The OTAA App Key.", + "nullable": true + }, + "appEUI": { + "type": "string", + "description": "The device OTAA Application EUI.", + "nullable": true + }, + "appSKey": { + "type": "string", + "description": "The ABP AppSKey.", + "nullable": true + }, + "nwkSKey": { + "type": "string", + "description": "The ABP NwkSKey.", + "nullable": true + }, + "devAddr": { + "type": "string", + "description": "Unique identifier that allows\r\nthe device to be recognized.", + "nullable": true + }, + "alreadyLoggedInOnce": { + "type": "boolean", + "description": "A value indicating whether the device has already joined the platform." + }, + "dataRate": { + "type": "string", + "description": "The Device Current Datarate,\r\nThis value will be only reported if you are using Adaptive Data Rate.", + "nullable": true + }, + "txPower": { + "type": "string", + "description": "The Device Current Transmit Power,\r\nThis value will be only reported if you are using Adaptive Data Rate.", + "nullable": true + }, + "nbRep": { + "type": "string", + "description": "The Device Current repetition when transmitting.\r\nE.g. if set to two, the device will transmit twice his upstream messages.\r\nThis value will be only reported if you are using Adaptive Data Rate.", + "nullable": true + }, + "reportedRX2DataRate": { + "type": "string", + "description": "The Device Current Rx2Datarate.", + "nullable": true + }, + "reportedRX1DROffset": { + "type": "string", + "description": "The Device Current RX1DROffset.", + "nullable": true + }, + "reportedRXDelay": { + "type": "string", + "description": "The Device Current RXDelay.", + "nullable": true + }, + "gatewayID": { + "type": "string", + "description": "The GatewayID of the device.", + "nullable": true + }, + "downlink": { + "type": "boolean", + "description": "A value indicating whether the downlinks are enabled (True if not provided)", + "default": true, + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelDto" + }, + "description": "Labels", + "nullable": true + } + }, + "additionalProperties": false, + "description": "LoRa WAN Device details." + }, + "LoRaDeviceModelDto": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "classType": { + "enum": [ + "A", + "C" + ], + "type": "string", + "description": "The LoRa device class.\r\nDefault is A.", + "default": "A" + }, + "preferredWindow": { + "type": "integer", + "description": "Allows setting the device preferred receive window (RX1 or RX2).\r\nThe default preferred receive window is 1.", + "format": "int32", + "default": 1 + }, + "deduplication": { + "enum": [ + "None", + "Drop", + "Mark" + ], + "type": "string", + "description": "Allows controlling the handling of duplicate messages received by multiple gateways.\r\nThe default is Drop.", + "default": "Drop" + }, + "rX1DROffset": { + "type": "integer", + "description": "Allows setting an offset between received Datarate and retransmit datarate as specified in the LoRa Specifiations.\r\nValid for OTAA devices.\r\nIf an invalid value is provided the network server will use default value 0.", + "format": "int32", + "default": 0, + "nullable": true + }, + "rX2DataRate": { + "type": "integer", + "description": "Allows setting a custom Datarate for second receive windows.\r\nValid for OTAA devices.\r\nIf an invalid value is provided the network server will use default value 0 (DR0).", + "format": "int32", + "default": 0, + "nullable": true + }, + "rxDelay": { + "type": "integer", + "description": "Allows setting a custom wait time between receiving and transmission as specified in the specification.", + "format": "int32", + "nullable": true + }, + "abpRelaxMode": { + "type": "boolean", + "description": "Allows to disable the relax mode when using ABP.\r\nBy default relaxed mode is enabled.", + "default": true, + "nullable": true + }, + "fCntUpStart": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer", + "description": "Allows to explicitly specify a frame counter up start value.\r\nIf the device joins, this value will be used to validate the first frame and initialize the server state for the device.\r\nDefault is 0.", + "format": "int32", + "default": 0, + "nullable": true + }, + "fCntDownStart": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer", + "description": "Allows to explicitly specify a frame counter down start value.\r\nDefault is 0.", + "format": "int32", + "default": 0, + "nullable": true + }, + "fCntResetCounter": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer", + "description": "Allows to reset the frame counters to the FCntUpStart/FCntDownStart values respectively.\r\nDefault is 0.", + "format": "int32", + "default": 0, + "nullable": true + }, + "supports32BitFCnt": { + "type": "boolean", + "description": "Allow the usage of 32bit counters on your device.", + "default": true, + "nullable": true + }, + "keepAliveTimeout": { + "type": "integer", + "description": "Allows defining a sliding expiration to the connection between the leaf device and IoT/Edge Hub.\r\nThe default is none, which causes the connection to not be dropped.", + "format": "int32", + "default": null, + "nullable": true + }, + "sensorDecoder": { + "type": "string", + "description": "The sensor decoder API Url.", + "nullable": true + }, + "modelId": { + "type": "string", + "description": "The device model identifier.", + "nullable": true + }, + "imageUrl": { + "type": "string", + "description": "The device model image Url.", + "format": "uri", + "nullable": true + }, + "name": { + "minLength": 1, + "type": "string", + "description": "The device model name." + }, + "description": { + "type": "string", + "description": "The device model description.", + "nullable": true + }, + "isBuiltin": { + "type": "boolean", + "description": "A value indicating whether this instance is builtin." + }, + "supportLoRaFeatures": { + "type": "boolean", + "description": "A value indicating whether the LoRa features is supported on this model.", + "readOnly": true + }, + "useOTAA": { + "type": "boolean", + "description": "A value indicating whether the device uses OTAA to authenticate to LoRaWAN network. Otherwise ABP.\r\nDefault is true.", + "default": true + }, + "downlink": { + "type": "boolean", + "description": "Allows disabling the downstream (cloud to device) for a device.\r\nBy default downstream messages are enabled.", + "default": true, + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelDto" + }, + "description": "Labels", + "nullable": true + } + }, + "additionalProperties": false, + "description": "LoRa Device model." + }, + "LoRaDeviceTelemetryDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "enqueuedTime": { + "type": "string", + "format": "date-time" + }, + "telemetry": { + "$ref": "#/components/schemas/LoRaTelemetryDto" + } + }, + "additionalProperties": false + }, + "LoRaGatewayIDList": { + "type": "object", + "properties": { + "gatewayIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "LoRaTelemetryDto": { + "type": "object", + "properties": { + "time": { + "type": "integer", + "format": "int64" + }, + "gpsTime": { + "type": "integer", + "format": "int32" + }, + "freq": { + "type": "number", + "format": "double" + }, + "chan": { + "type": "integer", + "format": "int32" + }, + "rfch": { + "type": "integer", + "format": "int32" + }, + "modu": { + "type": "string", + "nullable": true + }, + "datr": { + "type": "string", + "nullable": true + }, + "rssi": { + "type": "number", + "format": "double" + }, + "lsnr": { + "type": "number", + "format": "float" + }, + "data": { + "nullable": true + }, + "port": { + "type": "integer", + "format": "int32" + }, + "fcnt": { + "type": "integer", + "format": "int32" + }, + "edgets": { + "type": "integer", + "format": "int64" + }, + "rawdata": { + "type": "string", + "nullable": true + }, + "deviceEUI": { + "type": "string", + "nullable": true + }, + "gatewayID": { + "type": "string", + "nullable": true + }, + "stationEui": { + "type": "string", + "nullable": true + }, + "dupMsg": { + "type": "boolean", + "nullable": true + }, + "extraData": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "PortalMetric": { + "type": "object", + "properties": { + "deviceCount": { + "type": "integer", + "format": "int32" + }, + "connectedDeviceCount": { + "type": "integer", + "format": "int32" + }, + "edgeDeviceCount": { + "type": "integer", + "format": "int32" + }, + "connectedEdgeDeviceCount": { + "type": "integer", + "format": "int32" + }, + "failedDeploymentCount": { + "type": "integer", + "format": "int32" + }, + "concentratorCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "PortalSettings": { + "type": "object", + "properties": { + "isLoRaSupported": { + "type": "boolean", + "description": "A value indicating whether the LoRa features are acticated." + }, + "version": { + "type": "string", + "description": "The portal version.", + "nullable": true + }, + "portalName": { + "type": "string", + "description": "The poral name.", + "nullable": true + }, + "copyrightYear": { + "type": "string", + "description": "Copyright Year", + "nullable": true + }, + "isIdeasFeatureEnabled": { + "type": "boolean" + }, + "cloudProvider": { + "type": "string", + "description": "The poral cloudProvider.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Portal Settings." + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "RouterConfig": { + "type": "object", + "properties": { + "NetID": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The network identifier.", + "nullable": true + }, + "JoinEui": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "The join eui.", + "nullable": true + }, + "region": { + "type": "string", + "description": "The region.", + "nullable": true + }, + "hwspec": { + "type": "string", + "description": "The hardware specifications.", + "nullable": true + }, + "freq_range": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The frequency range.", + "nullable": true + }, + "DRs": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "description": "The DRs.", + "nullable": true + }, + "sx1301_conf": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Channel" + } + }, + "description": "The SX1301 conf.", + "nullable": true + }, + "nocca": { + "type": "boolean", + "description": "`true` if nocca; otherwise, `false`." + }, + "nodc": { + "type": "boolean", + "description": "`true` if nodc; otherwise, `false`." + }, + "nodwell": { + "type": "boolean", + "description": "`true` if nodwell; otherwise, `false`." + } + }, + "additionalProperties": false, + "description": "Router configuration." + }, + "SymmetricCredentials": { + "type": "object", + "properties": { + "registrationID": { + "type": "string", + "description": "The registration identifier.", + "nullable": true + }, + "symmetricKey": { + "type": "string", + "description": "The symmetric key.", + "nullable": true + }, + "scopeID": { + "type": "string", + "description": "The scope identifier.", + "nullable": true + }, + "provisioningEndpoint": { + "type": "string", + "description": "The provisioning endpoint.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Enrollment credentials." + } + }, + "securitySchemes": { + "Bearer": { + "type": "http", + "description": "\n Specify the authorization token got from your IDP as a header.\n > Ex: ``Authorization: Bearer * ***``", + "scheme": "bearer", + "bearerFormat": "JWT" + } + } + }, + "security": [ + { } + ] +} \ No newline at end of file diff --git a/versions.json b/versions.json index b8256b475..26482d525 100644 --- a/versions.json +++ b/versions.json @@ -14,6 +14,11 @@ "title": "dev", "aliases": [] }, + { + "version": "v6.0.0-beta01", + "title": "v6.0.0-beta01", + "aliases": [] + }, { "version": "v5.3.1", "title": "v5.3.1",