From 954e0cd865bfe7a30dfe4fcdeca521e45d635fc0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 07:15:19 +0000 Subject: [PATCH] Deployed d87a925 with MkDocs version: 1.6.0 --- .nojekyll | 0 404.html | 1280 +++ .../01_app_with_relational_db.png | Bin 0 -> 26907 bytes .../01_app_with_relational_db.puml | 13 + .../02_app_with_dynamodb.png | Bin 0 -> 28784 bytes .../02_app_with_dynamodb.puml | 13 + .../03_app_sftp_file_transfer.png | Bin 0 -> 23066 bytes .../03_app_sftp_file_transfer.puml | 13 + .../level_2_container/04_file_store_app.png | Bin 0 -> 36886 bytes .../level_2_container/04_file_store_app.puml | 16 + .../05_order_management_system.png | Bin 0 -> 41136 bytes .../05_order_management_system.puml | 16 + .../06_customer_management_system.png | Bin 0 -> 97201 bytes .../06_customer_management_system.puml | 26 + .../container/containers.png | Bin 0 -> 2565 bytes .../container/containers.puml | 48 + .../01_app_with_relational_db.png | Bin 0 -> 111076 bytes .../01_app_with_relational_db.puml | 45 + .../02_app_with_dynamodb.png | Bin 0 -> 110855 bytes .../02_app_with_dynamodb.puml | 45 + .../03_app_sftp_file_transfer.png | Bin 0 -> 171693 bytes .../03_app_sftp_file_transfer.puml | 50 + assets/_mkdocstrings.css | 119 + assets/images/favicon.png | Bin 0 -> 1870 bytes assets/javascripts/bundle.525ec568.min.js | 16 + assets/javascripts/bundle.525ec568.min.js.map | 7 + assets/javascripts/glightbox.min.js | 1 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.el.min.js | 1 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.he.min.js | 1 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.hy.min.js | 1 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.kn.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + assets/javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.ta.min.js | 1 + assets/javascripts/lunr/min/lunr.te.min.js | 1 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++ .../workers/search.6ce7567c.min.js | 42 + .../workers/search.6ce7567c.min.js.map | 7 + assets/stylesheets/glightbox.min.css | 1 + assets/stylesheets/main.8c3ca2c6.min.css | 1 + assets/stylesheets/main.8c3ca2c6.min.css.map | 1 + assets/stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + configuration-options/index.html | 1767 ++++ development/index.html | 1424 +++ features/index.html | 1545 +++ .../index.html | 1550 +++ .../index.html | 1913 ++++ .../index.html | 1967 ++++ .../testing-asynchronous-systems/index.html | 2095 ++++ .../testing-cronjobs-and-scripts/index.html | 1319 +++ getting-started/testing-simple-app/index.html | 1638 +++ guides/creating-app-facade/index.html | 1319 +++ guides/creating-new-testcontainers/index.html | 1675 ++++ guides/debugging-testcontainers/index.html | 1612 +++ guides/exporting-test-coverage/index.html | 1435 +++ .../index.html | 1407 +++ guides/improving-test-performance/index.html | 1319 +++ guides/index.html | 1370 +++ guides/managing-test-isolation/index.html | 1385 +++ guides/parallelizing-tests/index.html | 1471 +++ guides/ports-and-adapters/index.html | 1319 +++ .../index.html | 1319 +++ .../index.html | 1635 +++ guides/testing-databases/index.html | 1662 +++ guides/testing-repositories/index.html | 2012 ++++ ...ainer-startup-message-debugging-vscode.png | Bin 0 -> 353866 bytes images/httpbin-container-logs.png | Bin 0 -> 281285 bytes ...t-with-testcontainers-logs-failed-test.png | Bin 0 -> 531663 bytes ...t-with-testcontainers-logs-passed-test.png | Bin 0 -> 499949 bytes ...-repositories-with-the-same-test-suite.png | Bin 0 -> 506231 bytes images/web-container-failed-healthcheck.png | Bin 0 -> 290660 bytes included-testcontainers/index.html | 1685 ++++ index.html | 1486 +++ installation/index.html | 1397 +++ objects.inv | Bin 0 -> 3963 bytes quickstart/index.html | 1389 +++ reference/assertions/index.html | 1923 ++++ reference/async-probes/index.html | 1822 ++++ reference/clients/index.html | 2999 ++++++ reference/containers/index.html | 8875 +++++++++++++++++ reference/fixtures/index.html | 7927 +++++++++++++++ reference/index.html | 7815 +++++++++++++++ reference/utils/index.html | 2213 ++++ resources-and-acknowledgements/index.html | 1386 +++ search/search_index.json | 1 + sitemap.xml | 183 + sitemap.xml.gz | Bin 0 -> 644 bytes troubleshooting/index.html | 1391 +++ 114 files changed, 87613 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 architecture/c4/level_2_container/01_app_with_relational_db.png create mode 100644 architecture/c4/level_2_container/01_app_with_relational_db.puml create mode 100644 architecture/c4/level_2_container/02_app_with_dynamodb.png create mode 100644 architecture/c4/level_2_container/02_app_with_dynamodb.puml create mode 100644 architecture/c4/level_2_container/03_app_sftp_file_transfer.png create mode 100644 architecture/c4/level_2_container/03_app_sftp_file_transfer.puml create mode 100644 architecture/c4/level_2_container/04_file_store_app.png create mode 100644 architecture/c4/level_2_container/04_file_store_app.puml create mode 100644 architecture/c4/level_2_container/05_order_management_system.png create mode 100644 architecture/c4/level_2_container/05_order_management_system.puml create mode 100644 architecture/c4/level_2_container/06_customer_management_system.png create mode 100644 architecture/c4/level_2_container/06_customer_management_system.puml create mode 100644 architecture/c4/level_2_container/container/containers.png create mode 100644 architecture/c4/level_2_container/container/containers.puml create mode 100644 architecture/c4/level_3_component/01_app_with_relational_db.png create mode 100644 architecture/c4/level_3_component/01_app_with_relational_db.puml create mode 100644 architecture/c4/level_3_component/02_app_with_dynamodb.png create mode 100644 architecture/c4/level_3_component/02_app_with_dynamodb.puml create mode 100644 architecture/c4/level_3_component/03_app_sftp_file_transfer.png create mode 100644 architecture/c4/level_3_component/03_app_sftp_file_transfer.puml create mode 100644 assets/_mkdocstrings.css create mode 100644 assets/images/favicon.png create mode 100644 assets/javascripts/bundle.525ec568.min.js create mode 100644 assets/javascripts/bundle.525ec568.min.js.map create mode 100644 assets/javascripts/glightbox.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.6ce7567c.min.js create mode 100644 assets/javascripts/workers/search.6ce7567c.min.js.map create mode 100644 assets/stylesheets/glightbox.min.css create mode 100644 assets/stylesheets/main.8c3ca2c6.min.css create mode 100644 assets/stylesheets/main.8c3ca2c6.min.css.map create mode 100644 assets/stylesheets/palette.06af60db.min.css create mode 100644 assets/stylesheets/palette.06af60db.min.css.map create mode 100644 configuration-options/index.html create mode 100644 development/index.html create mode 100644 features/index.html create mode 100644 getting-started/applying-e2e-tests-with-testcontainers/index.html create mode 100644 getting-started/testing-app-with-backing-services/index.html create mode 100644 getting-started/testing-app-with-collaborator-services/index.html create mode 100644 getting-started/testing-asynchronous-systems/index.html create mode 100644 getting-started/testing-cronjobs-and-scripts/index.html create mode 100644 getting-started/testing-simple-app/index.html create mode 100644 guides/creating-app-facade/index.html create mode 100644 guides/creating-new-testcontainers/index.html create mode 100644 guides/debugging-testcontainers/index.html create mode 100644 guides/exporting-test-coverage/index.html create mode 100644 guides/forward-container-logs-to-pytest/index.html create mode 100644 guides/improving-test-performance/index.html create mode 100644 guides/index.html create mode 100644 guides/managing-test-isolation/index.html create mode 100644 guides/parallelizing-tests/index.html create mode 100644 guides/ports-and-adapters/index.html create mode 100644 guides/running-testcontainer-tests-in-ci-cd/index.html create mode 100644 guides/testing-apps-built-with-other-frameworks/index.html create mode 100644 guides/testing-databases/index.html create mode 100644 guides/testing-repositories/index.html create mode 100644 images/container-startup-message-debugging-vscode.png create mode 100644 images/httpbin-container-logs.png create mode 100644 images/pytest-with-testcontainers-logs-failed-test.png create mode 100644 images/pytest-with-testcontainers-logs-passed-test.png create mode 100644 images/testing-multiple-repositories-with-the-same-test-suite.png create mode 100644 images/web-container-failed-healthcheck.png create mode 100644 included-testcontainers/index.html create mode 100644 index.html create mode 100644 installation/index.html create mode 100644 objects.inv create mode 100644 quickstart/index.html create mode 100644 reference/assertions/index.html create mode 100644 reference/async-probes/index.html create mode 100644 reference/clients/index.html create mode 100644 reference/containers/index.html create mode 100644 reference/fixtures/index.html create mode 100644 reference/index.html create mode 100644 reference/utils/index.html create mode 100644 resources-and-acknowledgements/index.html create mode 100644 search/search_index.json create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz create mode 100644 troubleshooting/index.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..ee1fba16 --- /dev/null +++ b/404.html @@ -0,0 +1,1280 @@ + + + + + + + + + + + + + + + + + + + + + Tomodachi Testcontainers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/architecture/c4/level_2_container/01_app_with_relational_db.png b/architecture/c4/level_2_container/01_app_with_relational_db.png new file mode 100644 index 0000000000000000000000000000000000000000..dbda9898a31b6dbcbde310ea8b21be6380b9ba65 GIT binary patch literal 26907 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�zZR(6@PPf|53Cl4+ir0f-k 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

B12jqEnoyr8E+!^ye% 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 J8kC+y{SUQwwSNEr literal 0 HcmV?d00001 diff --git a/architecture/c4/level_2_container/01_app_with_relational_db.puml b/architecture/c4/level_2_container/01_app_with_relational_db.puml new file mode 100644 index 00000000..5e882599 --- /dev/null +++ b/architecture/c4/level_2_container/01_app_with_relational_db.puml @@ -0,0 +1,13 @@ +@startuml +!include ./container/containers.puml + +skinparam dpi 120 + +title Container Diagram - Application with Relational Database + +appContainer() +relationalDbContainer() + +Rel_R(app, relationalDb, "Reads from and writes to", "SQLAlchemy") + +@enduml diff --git a/architecture/c4/level_2_container/02_app_with_dynamodb.png b/architecture/c4/level_2_container/02_app_with_dynamodb.png new file mode 100644 index 0000000000000000000000000000000000000000..937819e2aec9d27a1ac7704355c73a866698f252 GIT binary patch literal 28784 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 X7VnL4lYy`PyC)^~PPF8WzVH74{k`%> literal 0 HcmV?d00001 diff --git a/architecture/c4/level_2_container/02_app_with_dynamodb.puml b/architecture/c4/level_2_container/02_app_with_dynamodb.puml new file mode 100644 index 00000000..a7e126f1 --- /dev/null +++ b/architecture/c4/level_2_container/02_app_with_dynamodb.puml @@ -0,0 +1,13 @@ +@startuml +!include ./container/containers.puml + +skinparam dpi 120 + +title Container Diagram - Application with DynamoDB Database + +appContainer() +dynamoDbContainer() + +Rel_R(app, dynamoDb, "Reads from and writes to", "aiobotocore") + +@enduml diff --git a/architecture/c4/level_2_container/03_app_sftp_file_transfer.png b/architecture/c4/level_2_container/03_app_sftp_file_transfer.png new file mode 100644 index 0000000000000000000000000000000000000000..ca1ef0f87a0cd120e772b057ade1ab2cd49e5895 GIT binary patch literal 23066 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 literal 0 HcmV?d00001 diff --git a/architecture/c4/level_2_container/04_file_store_app.puml b/architecture/c4/level_2_container/04_file_store_app.puml new file mode 100644 index 00000000..a9577191 --- /dev/null +++ b/architecture/c4/level_2_container/04_file_store_app.puml @@ -0,0 +1,16 @@ +@startuml +!include ./container/containers.puml + +skinparam dpi 120 + +title Container Diagram - File Store Application + +Person(user, "User") + +fileStoreAppContainer() +s3BucketContainer() + +Rel_R(user, fileStoreApp, "Reads and uploads files", "HTTP, JSON") +Rel_R(fileStoreApp, s3Bucket, "Reads and writes data to", "aiobotocore") + +@enduml diff --git a/architecture/c4/level_2_container/05_order_management_system.png b/architecture/c4/level_2_container/05_order_management_system.png new file mode 100644 index 0000000000000000000000000000000000000000..59db5e712096e987256ed55fefab9f65017ff817 GIT binary patch literal 41136 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 literal 0 HcmV?d00001 diff --git a/architecture/c4/level_2_container/05_order_management_system.puml b/architecture/c4/level_2_container/05_order_management_system.puml new file mode 100644 index 00000000..628d4a40 --- /dev/null +++ b/architecture/c4/level_2_container/05_order_management_system.puml @@ -0,0 +1,16 @@ +@startuml +!include ./container/containers.puml + +skinparam dpi 120 + +title Container Diagram - Order Management System + +Person(user, "Customer") + +orderAppContainer() +creditCheckAppContainer() + +Rel_R(user, orderApp, "Places new orders", "HTTP, JSON") +Rel_R(orderApp, creditCheckApp, "Verifies customer's credit for new orders", "HTTP, JSON") + +@enduml diff --git a/architecture/c4/level_2_container/06_customer_management_system.png b/architecture/c4/level_2_container/06_customer_management_system.png new file mode 100644 index 0000000000000000000000000000000000000000..3ae021b553f321df0fe3ac0ff192bd61f36b410b GIT binary patch literal 97201 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 literal 0 HcmV?d00001 diff --git a/architecture/c4/level_2_container/06_customer_management_system.puml b/architecture/c4/level_2_container/06_customer_management_system.puml new file mode 100644 index 00000000..28257428 --- /dev/null +++ b/architecture/c4/level_2_container/06_customer_management_system.puml @@ -0,0 +1,26 @@ +@startuml +!include ./container/containers.puml + +skinparam dpi 120 + +title Container Diagram - Customer Management System + +Person(user, "Customer") + +Boundary(customerAppBoundary, "Customer Management Application", "Container") { + customerAppContainer() + dynamoDbContainer() +} + +orderAppExtContainer() +awsSnsSqsContainer() + +Rel(user, customerApp, "Creates a new user account", "HTTP, JSON") +Rel(user, orderExtApp, "Places new orders", "HTTP, JSON") + +Rel(customerApp, dynamoDb, "Reads and stores customer information", "aiobotocore") +Rel(customerApp, awsSnsSqs, "Receives and publishes events", "aiobotocore, JSON") + +Rel(orderExtApp, awsSnsSqs, "Receives and publishes events", "aiobotocore, JSON") + +@enduml diff --git a/architecture/c4/level_2_container/container/containers.png b/architecture/c4/level_2_container/container/containers.png new file mode 100644 index 0000000000000000000000000000000000000000..22bedb7ddc265b50e9b6e412ef7a9b16cba8b25e GIT binary patch literal 2565 zcmV+g3i|blP)^?c_3(XbZ~PzFE4OxVQzGFZEP-MZ*6wY${zp#33+K$Safh~ zVQzGFZEOGm0001Zob6q0Z=<*t{+?gq>0aq}qv(3hHZ7X&I{{(G*-o-b8 z{|dyxI&due#yxpCcmaJU@3YYVmFvM}9E5Pjb40g7E=;ru$Tnznj(3K^o$J5|SRjV? z@#~cpL5Fw-5$eRcM*qX`&b8qiF4rJ*V94c}wLnfk;kV$z@=^C|=*O*?Ce5S76Y$(C zXzy&VC9TDMT+8emI+(CSZ`u(&nvcCjQC&AgifV-X80prr@ydE@O)-Ry8yh#!zU8qb zQ7g8^WXTRd_OOEX3xt~p#G!=_2Uj__e@CfX5ZP$t@(G5}BYj%ld{s+tzB;AbA=h8? zP2gCug$Fu`T@c0BAzXg>h_~kG2p;zh6r7!JtpmRMtPSopd8>n4xO;tPd0SYZkR3jN z07_LDqK~q?iW^Q5-4dT5&&301XpxT;t_#Oq6rRI?T{?k1i_~hjrFa4 z3+r?2G;4vKjlqh%#~x>YEWvV&-~H?-L<{1>cWZr*mVUJSJF4~jWed0PG;fzV{B`+u z`DF>#Fp99kt+vrg@ldw8CQ0M~E86+?O&IvWHlkq+e(%vHo7YV7Q`yU9T$&f~Ugx83Z ziDF^|UJ!zxOk$N5I?BrHFxdJ|(hjAmAE5?_Mzt-Gy=ptEVF>Nm@~=I3e(n*>EQHp( zci_L|6s>Y+cBKTTwSd5C0Eb-bS{>EddeRK40?Aq?e zLT9iw$O^;Yd)hobNeVHthdOnoy=(?Bi~|1v=Qc_eiKDUgrSs5iZFaKbrFV8Dm3l*bfG!IM5-V^!m!Gf zh{@_|hktlI0$dM?daz$bhI!cs|>F7XX`c2ZJ zX5p>4@>_~BwYMDQpN5(|QuS(thw4~Y%o^e9oJy)#o%6_~s&gW#Mz!HV^~&D+pn%ZA z)Ol12iqsLCnrzOl+kJZ)T8f5WRa)8%zv>oigyEE})(Ar=U#<~`QMO)l2qCI__TC4D zsIXWgOq`0VH67Ec5rgD=&SSHYBt_HbRW@ToHH{&6O{7CAh4qjQc@)<|IwVq92jTOe zdS&l@P(Z5dA00-8vG(!oY?`L_r=c|^cI?#NIj8c}-Z`Pl)ZRIx^3>jj5Y;_bA`J9tB}@0Bn+YcuR@LzC1F^J^H(9{ zx(0&95d16s3+6v%?OxX2O3Gg-G{Xb!aRBmEH;kD&Y6(ylW@`Gl1wb-P%G5@Hv@i>% zH31B>WC|akmfM@A!~;mx_U4oaP#6G{2hdpnnFCm`04fK-YF~=%0|9duK;Zyphkj^Q zSQkSMfE6Z<3pjLWFizcM$OlNJKvfc=nsGX>e`bnKawjvXdXy;wV|AwMQ-#s|v1Fz_ zU^G!RjnbBhrYW*i3sBQfJD)1@cr2?~ymXlfkeS(&LZm8yF(@dTkIDdM`ct-$ihyxL zd&H^;V9G_&CN!Yg0s0s;VA=v;jwk>#`OBtIfHv*ZTqOXO23Ku%C_onvKz#75S37;RgRQT28mk>riIi)R zay7CCs5z5zEmEjPG61gobUJ8LC={l&7L^FLNd{==Agx9)pj9P; zZIl99RU+7w6wtOk$)!QtSsa@#9$ntT3&yu`zIJI&vQJPe>rr*Z}` zu`sA9fW%LsyH&Hd_&1Q)`VQ3TvpQ@BB_pl#)&yWwt0nL{M_8(?YaKJYs1GIFoUxDZWJ>by+O^Z_k1M-Y(0OT2$yJ!IH zb2@Xu2T-b!>XKTw)}&N)=>W@~M%dpM-rpB~7?J+IaB=So?{5r0oKt^eczjDv? z#V!rHW7a>`vVW{)|5!^AZtN6=l=zRe%zr28vxiRSZxgb;S%xc>DS z`0dhstqne+plnfm&j9oX28u@ + +!procedure appContainer() + Container(app, "Application", "Python, tomodachi") +!endprocedure + +!procedure fileStoreAppContainer() + Container(fileStoreApp, "File Store Application", "Python, tomodachi", "Provides a text-based file storage service.") +!endprocedure + +!procedure orderAppContainer() + Container(orderApp, "Order Management Application", "Python, tomodachi", "Manages order lifecycle.") +!endprocedure + +!procedure orderAppExtContainer() + Container_Ext(orderExtApp, "Order Management Application", "", "Manages order lifecycle.") +!endprocedure + +!procedure customerAppContainer() + Container(customerApp, "Customer Management Application", "Python, tomodachi", "Manages customer lifecycle.") +!endprocedure + +!procedure creditCheckAppContainer() + Container_Ext(creditCheckApp, "Credit Check Application", "", "Keeps track of customer's credit score.") +!endprocedure + +!procedure relationalDbContainer() + ContainerDb(relationalDb, "Relational database", "PostgreSQL", "Datastore.") +!endprocedure + +!procedure dynamoDbContainer() + ContainerDb(dynamoDb, "DynamoDB key-value database", "DynamoDB", "Datastore.") +!endprocedure + +!procedure externalSftpContainer() + Container_Ext(externalSftp, "Client SFTP server", "SFTP", "Files provided by a client.") +!endprocedure + +!procedure s3BucketContainer() + Container(s3Bucket, "S3 bucket", "AWS S3", "Internal file storage.") +!endprocedure + +!procedure awsSnsSqsContainer() + ContainerQueue(awsSnsSqs, "AWS SNS/SQS message bus", "AWS SNS/SQS", "AWS managed asynchronous message bus.") +!endprocedure + +@enduml diff --git a/architecture/c4/level_3_component/01_app_with_relational_db.png b/architecture/c4/level_3_component/01_app_with_relational_db.png new file mode 100644 index 0000000000000000000000000000000000000000..c9ef07a0a1fb37dfa25283a4b575d987bb18ffd2 GIT binary patch literal 111076 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

3>#h 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 literal 0 HcmV?d00001 diff --git a/architecture/c4/level_3_component/01_app_with_relational_db.puml b/architecture/c4/level_3_component/01_app_with_relational_db.puml new file mode 100644 index 00000000..204b795f --- /dev/null +++ b/architecture/c4/level_3_component/01_app_with_relational_db.puml @@ -0,0 +1,45 @@ +@startuml +!include +!include ../level_2_container/container/containers.puml + +skinparam dpi 110 + +title Container Diagram - Application with Relational Database + +relationalDbContainer() + +Boundary(appContainerBoundary, "Application", "Container") { + Boundary(serviceLayer, "Service", "Layer") { + Component(useCases, "Use cases", "Python", "Application use cases (services).") + } + + Boundary(domainLayer, "Domain", "Layer") { + Component(domain, "Domain", "Python", "Application domain objects.") + + Component(ports, "Ports", "Python, typing.Protocol", "Ports protocol.") + } + + Boundary(infrastructureLayer, "Adapters", "Layer") { + Component(Repository, "In-memory repository", "Python", "Fake in-memory repository for testing and demo purposes.") + + Component_Ext(postgresRepository, "PostgreSQL repository", "Python, SQLAlchemy", "Adapter for PostgreSQL database.") + } +} + +Component(testcontainers, "Testcontainers", "Python, pytest", "Testcontainers library.") + +Lay_R(domain, ports) + +Lay_R(Repository, postgresRepository) + +Rel_D(useCases, ports, "Uses") +Rel_D(useCases, domain, "Uses") + +Rel_U(Repository, ports, "Implements") +Rel_U(postgresRepository, ports, "Implements") + +Rel_D(postgresRepository, relationalDb, "Reads from and writes to", "SQLAlchemy") + +Rel_U(testcontainers, relationalDb, "Creates PostgreSQL Testcontainer") + +@enduml diff --git a/architecture/c4/level_3_component/02_app_with_dynamodb.png b/architecture/c4/level_3_component/02_app_with_dynamodb.png new file mode 100644 index 0000000000000000000000000000000000000000..dddfc1832aaa5d4299f527401af29a1b262b8a41 GIT binary patch literal 110855 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�BTAfllnw<%qR&^wKZ^p; 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 literal 0 HcmV?d00001 diff --git a/architecture/c4/level_3_component/02_app_with_dynamodb.puml b/architecture/c4/level_3_component/02_app_with_dynamodb.puml new file mode 100644 index 00000000..bbf7630a --- /dev/null +++ b/architecture/c4/level_3_component/02_app_with_dynamodb.puml @@ -0,0 +1,45 @@ +@startuml +!include +!include ../level_2_container/container/containers.puml + +skinparam dpi 110 + +title Container Diagram - Application with DynamoDB Database + +dynamoDbContainer() + +Boundary(appContainerBoundary, "Application", "Container") { + Boundary(serviceLayer, "Service", "Layer") { + Component(useCases, "Use cases", "Python", "Application use cases (services).") + } + + Boundary(domainLayer, "Domain", "Layer") { + Component(domain, "Domain", "Python", "Application domain objects.") + + Component(ports, "Ports", "Python, typing.Protocol", "Ports protocol.") + } + + Boundary(infrastructureLayer, "Adapters", "Layer") { + Component(Repository, "In-memory repository", "Python", "Fake in-memory repository for testing and demo purposes.") + + Component(dynamoDbRepository, "DynamoDB repository", "Python, aiobotocore", "Adapter for DynamoDB database.") + } +} + +Component(testcontainers, "Testcontainers", "Python, pytest", "Testcontainers library.") + +Lay_R(domain, ports) + +Lay_R(Repository, dynamoDbRepository) + +Rel_D(useCases, ports, "Uses") +Rel_D(useCases, domain, "Uses") + +Rel_U(Repository, ports, "Implements") +Rel_U(dynamoDbRepository, ports, "Implements") + +Rel_D(dynamoDbRepository, dynamoDb, "Reads from and writes to", "aiobotocore") + +Rel_U(testcontainers, dynamoDb, "Creates LocalStack Testcontainer") + +@enduml diff --git a/architecture/c4/level_3_component/03_app_sftp_file_transfer.png b/architecture/c4/level_3_component/03_app_sftp_file_transfer.png new file mode 100644 index 0000000000000000000000000000000000000000..095b59fe76d6a90382cde9d7ed4d30fd441feb7e GIT binary patch literal 171693 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

YmPI5&g3x@diO(Eq-UbY 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 +!include ../level_2_container/container/containers.puml + +skinparam dpi 125 + +title Container Diagram - SFTP File Transfer Application + +externalSftpContainer() +s3BucketContainer() + +Boundary(appContainerBoundary, "Application", "Container") { + Boundary(serviceLayer, "Service", "Layer") { + Component(useCases, "Use cases", "Python", "Application use cases (services).") + } + + Boundary(domainLayer, "Domain", "Layer") { + Component(domain, "Domain", "Python", "Application domain objects.") + + Component(ports, "Ports", "Python, typing.Protocol", "Ports protocol.") + } + + Boundary(infrastructureLayer, "Adapters", "Layer") { + Component_Ext(sftpClient, "SFTP client", "Python, AsyncSSH", "Adapter for SFTP file operations.") + + Component_Ext(s3Client, "S3 client", "Python, aiobotocore", "Adapter for S3 file operations.") + + Component(fakeSftpClient, "In-memory SFTP client", "Python", "Fake for testing and demo purposes.") + + Component(fakeS3Client, "In-memory S3 client", "Python", "Fake for testing and demo purposes.") + } +} + +Component(testcontainers, "Testcontainers", "Python, pytest", "Testcontainers library.") + +Rel_D(useCases, ports, "Uses") +Rel_D(useCases, domain, "Uses") + +Rel_U(sftpClient, ports, "Implements") +Rel_U(s3Client, ports, "Implements") +Rel_U(fakeSftpClient, ports, "Implements") +Rel_U(fakeS3Client, ports, "Implements") + +Rel_D(sftpClient, externalSftp, "Reads files from", "AshyncSSH") +Rel_D(s3Client, s3Bucket, "Transfers files to ", "aiobotocore") + +Rel_U(testcontainers, externalSftp, "Creates SFTP Testcontainer") +Rel_U(testcontainers, s3Bucket, "Creates LocalStack Testcontainer") + +@enduml diff --git a/assets/_mkdocstrings.css b/assets/_mkdocstrings.css new file mode 100644 index 00000000..85449ec7 --- /dev/null +++ b/assets/_mkdocstrings.css @@ -0,0 +1,119 @@ + +/* Avoid breaking parameter names, etc. in table cells. */ +.doc-contents td code { + word-break: normal !important; +} + +/* No line break before first paragraph of descriptions. */ +.doc-md-description, +.doc-md-description>p:first-child { + display: inline; +} + +/* Max width for docstring sections tables. */ +.doc .md-typeset__table, +.doc .md-typeset__table table { + display: table !important; + width: 100%; +} + +.doc .md-typeset__table tr { + display: table-row; +} + +/* Defaults in Spacy table style. */ +.doc-param-default { + float: right; +} + +/* Backward-compatibility: docstring section titles in bold. */ +.doc-section-title { + font-weight: bold; +} + +/* Symbols in Navigation and ToC. */ +:root, +[data-md-color-scheme="default"] { + --doc-symbol-attribute-fg-color: #953800; + --doc-symbol-function-fg-color: #8250df; + --doc-symbol-method-fg-color: #8250df; + --doc-symbol-class-fg-color: #0550ae; + --doc-symbol-module-fg-color: #5cad0f; + + --doc-symbol-attribute-bg-color: #9538001a; + --doc-symbol-function-bg-color: #8250df1a; + --doc-symbol-method-bg-color: #8250df1a; + --doc-symbol-class-bg-color: #0550ae1a; + --doc-symbol-module-bg-color: #5cad0f1a; +} + +[data-md-color-scheme="slate"] { + --doc-symbol-attribute-fg-color: #ffa657; + --doc-symbol-function-fg-color: #d2a8ff; + --doc-symbol-method-fg-color: #d2a8ff; + --doc-symbol-class-fg-color: #79c0ff; + --doc-symbol-module-fg-color: #baff79; + + --doc-symbol-attribute-bg-color: #ffa6571a; + --doc-symbol-function-bg-color: #d2a8ff1a; + --doc-symbol-method-bg-color: #d2a8ff1a; + --doc-symbol-class-bg-color: #79c0ff1a; + --doc-symbol-module-bg-color: #baff791a; +} + +code.doc-symbol { + border-radius: .1rem; + font-size: .85em; + padding: 0 .3em; + font-weight: bold; +} + +code.doc-symbol-attribute { + color: var(--doc-symbol-attribute-fg-color); + background-color: var(--doc-symbol-attribute-bg-color); +} + +code.doc-symbol-attribute::after { + content: "attr"; +} + +code.doc-symbol-function { + color: var(--doc-symbol-function-fg-color); + background-color: var(--doc-symbol-function-bg-color); +} + +code.doc-symbol-function::after { + content: "func"; +} + +code.doc-symbol-method { + color: var(--doc-symbol-method-fg-color); + background-color: var(--doc-symbol-method-bg-color); +} + +code.doc-symbol-method::after { + content: "meth"; +} + +code.doc-symbol-class { + color: var(--doc-symbol-class-fg-color); + background-color: var(--doc-symbol-class-bg-color); +} + +code.doc-symbol-class::after { + content: "class"; +} + +code.doc-symbol-module { + color: var(--doc-symbol-module-fg-color); + background-color: var(--doc-symbol-module-bg-color); +} + +code.doc-symbol-module::after { + content: "mod"; +} + +.doc-signature .autorefs { + color: inherit; + border-bottom: 1px dotted currentcolor; +} diff --git a/assets/images/favicon.png b/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/assets/javascripts/bundle.525ec568.min.js b/assets/javascripts/bundle.525ec568.min.js new file mode 100644 index 00000000..4b08eae4 --- /dev/null +++ b/assets/javascripts/bundle.525ec568.min.js @@ -0,0 +1,16 @@ +"use strict";(()=>{var Wi=Object.create;var gr=Object.defineProperty;var Di=Object.getOwnPropertyDescriptor;var Vi=Object.getOwnPropertyNames,Vt=Object.getOwnPropertySymbols,Ni=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,ao=Object.prototype.propertyIsEnumerable;var io=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&io(e,r,t[r]);if(Vt)for(var r of Vt(t))ao.call(t,r)&&io(e,r,t[r]);return e};var so=(e,t)=>{var r={};for(var o in e)yr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Vt)for(var o of Vt(e))t.indexOf(o)<0&&ao.call(e,o)&&(r[o]=e[o]);return r};var xr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var zi=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Vi(t))!yr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=Di(t,n))||o.enumerable});return e};var Mt=(e,t,r)=>(r=e!=null?Wi(Ni(e)):{},zi(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var co=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var lo=xr((Er,po)=>{(function(e,t){typeof Er=="object"&&typeof po!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={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 s(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function p(k){var ft=k.type,qe=k.tagName;return!!(qe==="INPUT"&&a[ft]&&!k.readOnly||qe==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function c(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(k){o=!1}function d(k){s(k.target)&&(o||p(k.target))&&c(k.target)}function y(k){s(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function L(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){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 te(){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(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,te())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",L,!0),X(),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 qr=xr((hy,On)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var $a=/["'&<>]/;On.exports=Pa;function Pa(e){var t=""+e,r=$a.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof It=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof It=="object"?It.ClipboardJS=r():t.ClipboardJS=r()})(It,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ui}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(A){return!1}}var d=function(A){var M=f()(A);return u("cut"),M},y=d;function L(V){var A=document.documentElement.getAttribute("dir")==="rtl",M=document.createElement("textarea");M.style.fontSize="12pt",M.style.border="0",M.style.padding="0",M.style.margin="0",M.style.position="absolute",M.style[A?"right":"left"]="-9999px";var F=window.pageYOffset||document.documentElement.scrollTop;return M.style.top="".concat(F,"px"),M.setAttribute("readonly",""),M.value=V,M}var X=function(A,M){var F=L(A);M.container.appendChild(F);var D=f()(F);return u("copy"),F.remove(),D},te=function(A){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},F="";return typeof A=="string"?F=X(A,M):A instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(A==null?void 0:A.type)?F=X(A.value,M):(F=f()(A),u("copy")),F},J=te;function k(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(M){return typeof M}:k=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},k(V)}var ft=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},M=A.action,F=M===void 0?"copy":M,D=A.container,Y=A.target,$e=A.text;if(F!=="copy"&&F!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&k(Y)==="object"&&Y.nodeType===1){if(F==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(F==="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($e)return J($e,{container:D});if(Y)return F==="cut"?y(Y):J(Y,{container:D})},qe=ft;function Fe(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(M){return typeof M}:Fe=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},Fe(V)}function ki(V,A){if(!(V instanceof A))throw new TypeError("Cannot call a class as a function")}function no(V,A){for(var M=0;M0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=Fe(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Y=this;this.listener=c()(D,"click",function($e){return Y.onClick($e)})}},{key:"onClick",value:function(D){var Y=D.delegateTarget||D.currentTarget,$e=this.action(Y)||"copy",Dt=qe({action:$e,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Dt?"success":"error",{action:$e,text:Dt,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return vr("action",D)}},{key:"defaultTarget",value:function(D){var Y=vr("target",D);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(D){return vr("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(D,Y)}},{key:"cut",value:function(D){return y(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof D=="string"?[D]:D,$e=!!document.queryCommandSupported;return Y.forEach(function(Dt){$e=$e&&!!document.queryCommandSupported(Dt)}),$e}}]),M}(s()),Ui=Fi},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 a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,d,y){var L=c.apply(this,arguments);return l.addEventListener(u,L,y),{destroy:function(){l.removeEventListener(u,L,y)}}}function p(l,f,u,d,y){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(L){return s(L,f,u,d,y)}))}function c(l,f,u,d){return function(y){y.delegateTarget=a(y.target,f),y.delegateTarget&&d.call(l,y)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[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 a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,d,y){if(!u&&!d&&!y)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(y))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,d,y);if(a.nodeList(u))return l(u,d,y);if(a.string(u))return f(u,d,y);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(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(L){L.addEventListener(d,y)}),{destroy:function(){Array.prototype.forEach.call(u,function(L){L.removeEventListener(d,y)})}}}function f(u,d,y){return s(document.body,u,d,y)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[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 N(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||p(d,L)})},y&&(n[d]=y(n[d])))}function p(d,y){try{c(o[d](y))}catch(L){u(i[0][3],L)}}function c(d){d.value instanceof nt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){p("next",d)}function f(d){p("throw",d)}function u(d,y){d(y),i.shift(),i.length&&p(i[0][0],i[0][1])}}function uo(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 he=="function"?he(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(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function H(e){return typeof e=="function"}function ut(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 zt=ut(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 Qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ue=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 a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=he(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(L){t={error:L}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(H(l))try{l()}catch(L){i=L instanceof zt?L.errors:[L]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=he(f),d=u.next();!d.done;d=u.next()){var y=d.value;try{ho(y)}catch(L){i=i!=null?i:[],L instanceof zt?i=q(q([],N(i)),N(L.errors)):i.push(L)}}}catch(L){o={error:L}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ho(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)&&Qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=Ue.EMPTY;function qt(e){return e instanceof Ue||e&&"closed"in e&&H(e.remove)&&H(e.add)&&H(e.unsubscribe)}function ho(e){H(e)?e():e.unsubscribe()}var Pe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var dt={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,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new Ue(function(){o.currentObservers=null,Qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new j;return r.source=this,r},t.create=function(r,o){return new To(r,o)},t}(j);var To=function(e){oe(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}(g);var _r=function(e){oe(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var At={now:function(){return(At.delegate||Date).now()},delegate:void 0};var Ct=function(e){oe(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=At);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,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),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,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(gt);var Lo=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(yt);var kr=new Lo(Oo);var Mo=function(e){oe(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=vt.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 a=r.actions;o!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(vt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(gt);var _o=function(e){oe(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}(yt);var me=new _o(Mo);var S=new j(function(e){return e.complete()});function Yt(e){return e&&H(e.schedule)}function Hr(e){return e[e.length-1]}function Xe(e){return H(Hr(e))?e.pop():void 0}function ke(e){return Yt(Hr(e))?e.pop():void 0}function Bt(e,t){return typeof Hr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Gt(e){return H(e==null?void 0:e.then)}function Jt(e){return H(e[bt])}function Xt(e){return Symbol.asyncIterator&&H(e==null?void 0:e[Symbol.asyncIterator])}function Zt(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 Zi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var er=Zi();function tr(e){return H(e==null?void 0:e[er])}function rr(e){return fo(this,arguments,function(){var r,o,n,i;return Nt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function or(e){return H(e==null?void 0:e.getReader)}function U(e){if(e instanceof j)return e;if(e!=null){if(Jt(e))return ea(e);if(xt(e))return ta(e);if(Gt(e))return ra(e);if(Xt(e))return Ao(e);if(tr(e))return oa(e);if(or(e))return na(e)}throw Zt(e)}function ea(e){return new j(function(t){var r=e[bt]();if(H(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ta(e){return new j(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,Te(1),r?De(t):Qo(function(){return new ir}))}}function jr(e){return e<=0?function(){return S}:E(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,d=0,y=!1,L=!1,X=function(){f==null||f.unsubscribe(),f=void 0},te=function(){X(),l=u=void 0,y=L=!1},J=function(){var k=l;te(),k==null||k.unsubscribe()};return E(function(k,ft){d++,!L&&!y&&X();var qe=u=u!=null?u:r();ft.add(function(){d--,d===0&&!L&&!y&&(f=Ur(J,p))}),qe.subscribe(ft),!l&&d>0&&(l=new at({next:function(Fe){return qe.next(Fe)},error:function(Fe){L=!0,X(),f=Ur(te,n,Fe),qe.error(Fe)},complete:function(){y=!0,X(),f=Ur(te,a),qe.complete()}}),U(k).subscribe(l))})(c)}}function Ur(e,t){for(var r=[],o=2;oe.next(document)),e}function P(e,t=document){return Array.from(t.querySelectorAll(e))}function R(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Ie(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var wa=O(h(document.body,"focusin"),h(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Ie()||document.body),G(1));function et(e){return wa.pipe(m(t=>e.contains(t)),K())}function $t(e,t){return C(()=>O(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?Ht(r=>Le(+!r*t)):le,Q(e.matches(":hover"))))}function Jo(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)Jo(e,r)}function x(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)Jo(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function Tt(e){let t=x("script",{src:e});return C(()=>(document.head.appendChild(t),O(h(t,"load"),h(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),_(()=>document.head.removeChild(t)),Te(1))))}var Xo=new g,Ta=C(()=>typeof ResizeObserver=="undefined"?Tt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Xo.next(t)))),v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ta.pipe(w(r=>r.observe(t)),v(r=>Xo.pipe(b(o=>o.target===t),_(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function St(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Zo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Ve(e){return{x:e.offsetLeft,y:e.offsetTop}}function en(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function tn(e){return O(h(window,"load"),h(window,"resize")).pipe(Me(0,me),m(()=>Ve(e)),Q(Ve(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ne(e){return O(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe(Me(0,me),m(()=>pr(e)),Q(pr(e)))}var rn=new g,Sa=C(()=>I(new IntersectionObserver(e=>{for(let t of e)rn.next(t)},{threshold:0}))).pipe(v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function tt(e){return Sa.pipe(w(t=>t.observe(e)),v(t=>rn.pipe(b(({target:r})=>r===e),_(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function on(e,t=16){return Ne(e).pipe(m(({y:r})=>{let o=ce(e),n=St(e);return r>=n.height-o.height-t}),K())}var lr={drawer:R("[data-md-toggle=drawer]"),search:R("[data-md-toggle=search]")};function nn(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function ze(e){let t=lr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function Oa(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 La(){return O(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function an(){let e=h(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:nn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Ie();if(typeof o!="undefined")return!Oa(o,r)}return!0}),pe());return La().pipe(v(t=>t?S:e))}function ye(){return new URL(location.href)}function lt(e,t=!1){if(B("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function sn(){return new g}function cn(){return location.hash.slice(1)}function pn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Ma(e){return O(h(window,"hashchange"),e).pipe(m(cn),Q(cn()),b(t=>t.length>0),G(1))}function ln(e){return Ma(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function Pt(e){let t=matchMedia(e);return ar(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function mn(){let e=matchMedia("print");return O(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function Nr(e,t){return e.pipe(v(r=>r?t():S))}function zr(e,t){return new j(r=>{let o=new XMLHttpRequest;return 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.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function je(e,t){return zr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),G(1))}function fn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),G(1))}function un(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),G(1))}function dn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function hn(){return O(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(dn),Q(dn()))}function bn(){return{width:innerWidth,height:innerHeight}}function vn(){return h(window,"resize",{passive:!0}).pipe(m(bn),Q(bn()))}function gn(){return z([hn(),vn()]).pipe(m(([e,t])=>({offset:e,size:t})),G(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(ee("size")),n=z([o,r]).pipe(m(()=>Ve(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function _a(e){return h(e,"message",t=>t.data)}function Aa(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function yn(e,t=new Worker(e)){let r=_a(t),o=Aa(t),n=new g;n.subscribe(o);let i=o.pipe(Z(),ie(!0));return n.pipe(Z(),Re(r.pipe(W(i))),pe())}var Ca=R("#__config"),Ot=JSON.parse(Ca.textContent);Ot.base=`${new URL(Ot.base,ye())}`;function xe(){return Ot}function B(e){return Ot.features.includes(e)}function Ee(e,t){return typeof t!="undefined"?Ot.translations[e].replace("#",t.toString()):Ot.translations[e]}function Se(e,t=document){return R(`[data-md-component=${e}]`,t)}function ae(e,t=document){return P(`[data-md-component=${e}]`,t)}function ka(e){let t=R(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>R(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function xn(e){if(!B("announce.dismiss")||!e.childElementCount)return S;if(!e.hidden){let t=R(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),ka(e).pipe(w(r=>t.next(r)),_(()=>t.complete()),m(r=>$({ref:e},r)))})}function Ha(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function En(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Ha(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))}function Rt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function wn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function Tn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Sn(e){return x("button",{class:"md-clipboard md-icon",title:Ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}var Ln=Mt(qr());function Qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,x("del",null,(0,Ln.default)(c))," "],[]).slice(0,-1),i=xe(),a=new URL(e.location,i.base);B("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=xe();return x("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&x("nav",{class:"md-tags"},e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${c}`},p)})),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Ee("search.result.term.missing"),": ",...n)))}function Mn(e){let t=e[0].score,r=[...e],o=xe(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreQr(l,1)),...p.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,p.length>0&&p.length===1?Ee("search.result.more.one"):Ee("search.result.more.other",p.length))),...p.map(l=>Qr(l,1)))]:[]];return x("li",{class:"md-search-result__item"},c)}function _n(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Kr(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function An(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Ra(e){var o;let t=xe(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Cn(e,t){var o;let r=xe();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Ee("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Ra)))}var Ia=0;function ja(e){let t=z([et(e),$t(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Zo(e)).pipe(ne(Ne),pt(1),He(t),m(()=>en(e)));return t.pipe(Ae(o=>o),v(()=>z([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function Fa(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Ia++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(Z(),ie(!1)).subscribe(a);let s=a.pipe(Ht(c=>Le(+!c*250,kr)),K(),v(c=>c?r:S),w(c=>c.id=n),pe());z([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>$t(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),re(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),d=u.width/2;if(l.role==="tooltip")return{x:d,y:8+u.height};if(u.y>=f.height/2){let{height:y}=ce(l);return{x:d,y:-16-y}}else return{x:d,y:16+u.height}}));return z([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),re(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(R(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),ve(me),re(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),z([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),ja(e).pipe(w(c=>i.next(c)),_(()=>i.complete()),m(c=>$({ref:e},c)))})}function mt(e,{viewport$:t},r=document.body){return Fa(e,{content$:new j(o=>{let n=e.title,i=wn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function Ua(e,t){let r=C(()=>z([tn(e),Ne(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),Te(+!o||1/0))))}function kn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(W(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),O(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Me(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(W(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),h(n,"mousedown").pipe(W(a),re(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Ie())==null||c.blur()}}),r.pipe(W(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),Ua(e,t).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function Wa(e){return e.tagName==="CODE"?P(".c, .c1, .cm",e):[e]}function Da(e){let t=[];for(let r of Wa(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 a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function Hn(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,a=new Map;for(let s of Da(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,Tn(p,i)),s.replaceWith(a.get(p)))}return a.size===0?S:C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=[];for(let[l,f]of a)c.push([R(".md-typeset",f),R(`:scope > li:nth-child(${l})`,e)]);return o.pipe(W(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?Hn(f,u):Hn(u,f)}),O(...[...a].map(([,l])=>kn(l,t,{target$:r}))).pipe(_(()=>s.complete()),pe())})}function $n(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return $n(t)}}function Pn(e,t){return C(()=>{let r=$n(e);return typeof r!="undefined"?fr(r,e,t):S})}var Rn=Mt(Br());var Va=0;function In(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return In(t)}}function Na(e){return ge(e).pipe(m(({width:t})=>({scrollable:St(e).width>t})),ee("scrollable"))}function jn(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(jr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Rn.default.isSupported()&&(e.closest(".copy")||B("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Va++}`;let l=Sn(c.id);c.insertBefore(l,e),B("content.tooltips")&&a.push(mt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=In(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||B("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(W(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:S)))}}return P(":scope > span[id]",e).length&&e.classList.add("md-code__content"),Na(e).pipe(w(c=>n.next(c)),_(()=>n.complete()),m(c=>$({ref:e},c)),Re(...a))});return B("content.lazy")?tt(e).pipe(b(n=>n),Te(1),v(()=>o)):o}function za(e,{target$:t,print$:r}){let o=!0;return O(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),w(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Fn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),za(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}var Un=".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 p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{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,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.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 Gr,Qa=0;function Ka(){return typeof mermaid=="undefined"||mermaid instanceof Element?Tt("https://unpkg.com/mermaid@11/dist/mermaid.min.js"):I(void 0)}function Wn(e){return e.classList.remove("mermaid"),Gr||(Gr=Ka().pipe(w(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Un,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),G(1))),Gr.subscribe(()=>co(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Qa++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Gr.pipe(m(()=>({ref:e})))}var Dn=x("table");function Vn(e){return e.replaceWith(Dn),Dn.replaceWith(An(e)),I({ref:e})}function Ya(e){let t=e.find(r=>r.checked)||e[0];return O(...e.map(r=>h(r,"change").pipe(m(()=>R(`label[for="${r.id}"]`))))).pipe(Q(R(`label[for="${t.id}"]`)),m(r=>({active:r})))}function Nn(e,{viewport$:t,target$:r}){let o=R(".tabbed-labels",e),n=P(":scope > input",e),i=Kr("prev");e.append(i);let a=Kr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(Z(),ie(!0));z([s,ge(e),tt(e)]).pipe(W(p),Me(1,me)).subscribe({next([{active:c},l]){let f=Ve(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=pr(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")}}),z([Ne(o),ge(o)]).pipe(W(p)).subscribe(([c,l])=>{let f=St(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),O(h(i,"click").pipe(m(()=>-1)),h(a,"click").pipe(m(()=>1))).pipe(W(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(W(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=R(`label[for="${c.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(W(p),b(f=>!(f.metaKey||f.ctrlKey)),w(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return B("content.tabs.link")&&s.pipe(Ce(1),re(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let y of P("[data-tabs]"))for(let L of P(":scope > input",y)){let X=R(`label[for="${L.id}"]`);if(X!==c&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),L.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),s.pipe(W(p)).subscribe(()=>{for(let c of P("audio, video",e))c.pause()}),Ya(n).pipe(w(c=>s.next(c)),_(()=>s.complete()),m(c=>$({ref:e},c)))}).pipe(Ke(se))}function zn(e,{viewport$:t,target$:r,print$:o}){return O(...P(".annotate:not(.highlight)",e).map(n=>Pn(n,{target$:r,print$:o})),...P("pre:not(.mermaid) > code",e).map(n=>jn(n,{target$:r,print$:o})),...P("pre.mermaid",e).map(n=>Wn(n)),...P("table:not([class])",e).map(n=>Vn(n)),...P("details",e).map(n=>Fn(n,{target$:r,print$:o})),...P("[data-tabs]",e).map(n=>Nn(n,{viewport$:t,target$:r})),...P("[title]",e).filter(()=>B("content.tooltips")).map(n=>mt(n,{viewport$:t})))}function Ba(e,{alert$:t}){return t.pipe(v(r=>O(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function qn(e,t){let r=R(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Ba(e,t).pipe(w(n=>o.next(n)),_(()=>o.complete()),m(n=>$({ref:e},n)))})}var Ga=0;function Ja(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?Ne(o):I({x:0,y:0}),i=O(et(t),$t(t)).pipe(K());return z([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=Ve(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function Qn(e){let t=e.title;if(!t.length)return S;let r=`__tooltip_${Ga++}`,o=Rt(r,"inline"),n=R(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),O(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(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(Me(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Ja(o,e).pipe(w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))}).pipe(Ke(se))}function Xa({viewport$:e}){if(!B("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Be(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=ze("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Kn(e,t){return C(()=>z([ge(e),Xa(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),G(1))}function Yn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(Z(),ie(!0));o.pipe(ee("active"),He(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue(P("[title]",e)).pipe(b(()=>B("content.tooltips")),ne(a=>Qn(a)));return r.subscribe(o),t.pipe(W(n),m(a=>$({ref:e},a)),Re(i.pipe(W(n))))})}function Za(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),ee("active"))}function Bn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?S:Za(o,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))})}function Gn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ee("bottom"))));return z([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function es(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(ne(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),G(1))}function Jn(e){let t=P("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=Pt("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),re(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(ve(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),es(t).pipe(W(n.pipe(Ce(1))),ct(),w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))})}function Xn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(w(o=>r.next({value:o})),_(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Jr=Mt(Br());function ts(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 Zn({alert$:e}){Jr.default.isSupported()&&new j(t=>{new Jr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||ts(R(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(w(t=>{t.trigger.focus()}),m(()=>Ee("clipboard.copied"))).subscribe(e)}function ei(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function rs(e,t){let r=new Map;for(let o of P("url",e)){let n=R("loc",o),i=[ei(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of P("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(ei(new URL(s),t))}}return r}function ur(e){return un(new URL("sitemap.xml",e)).pipe(m(t=>rs(t,new URL(e))),de(()=>I(new Map)))}function os(e,t){if(!(e.target instanceof Element))return S;let r=e.target.closest("a");if(r===null)return S;if(r.target||e.metaKey||e.ctrlKey)return S;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):S}function ti(e){let t=new Map;for(let r of P(":scope > *",e.head))t.set(r.outerHTML,r);return t}function ri(e){for(let t of P("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function ns(e){for(let o 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]",...B("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=ti(document);for(let[o,n]of ti(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return We(P("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new j(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),S}),Z(),ie(document))}function oi({location$:e,viewport$:t,progress$:r}){let o=xe();if(location.protocol==="file:")return S;let n=ur(o.base);I(document).subscribe(ri);let i=h(document.body,"click").pipe(He(n),v(([p,c])=>os(p,c)),pe()),a=h(window,"popstate").pipe(m(ye),pe());i.pipe(re(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),O(i,a).subscribe(e);let s=e.pipe(ee("pathname"),v(p=>fn(p,{progress$:r}).pipe(de(()=>(lt(p,!0),S)))),v(ri),v(ns),pe());return O(s.pipe(re(e,(p,c)=>c)),s.pipe(v(()=>e),ee("pathname"),v(()=>e),ee("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),w(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",pn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(ee("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var ni=Mt(qr());function ii(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,ni.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function jt(e){return e.type===1}function dr(e){return e.type===3}function ai(e,t){let r=yn(e);return O(I(location.protocol!=="file:"),ze("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:B("search.suggest")}}})),r}function si(e){var l;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:o,currentBaseURL:n}=e,i=(l=Xr(n))==null?void 0:l.pathname;if(i===void 0)return;let a=ss(o.pathname,i);if(a===void 0)return;let s=ps(t.keys());if(!t.has(s))return;let p=Xr(a,s);if(!p||!t.has(p.href))return;let c=Xr(a,r);if(c)return c.hash=o.hash,c.search=o.search,c}function Xr(e,t){try{return new URL(e,t)}catch(r){return}}function ss(e,t){if(e.startsWith(t))return e.slice(t.length)}function cs(e,t){let r=Math.min(e.length,t.length),o;for(o=0;oS)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>h(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),re(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?S:(i.preventDefault(),I(new URL(p)))}}return S}),v(i=>ur(i).pipe(m(a=>{var s;return(s=si({selectedVersionSitemap:a,selectedVersionBaseURL:i,currentLocation:ye(),currentBaseURL:t.base}))!=null?s:i})))))).subscribe(n=>lt(n,!0)),z([r,o]).subscribe(([n,i])=>{R(".md-header__topic").appendChild(Cn(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let s=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(s)||(s=[s]);e:for(let p of s)for(let c of n.aliases.concat(n.version))if(new RegExp(p,"i").test(c)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function ls(e,{worker$:t}){let{searchParams:r}=ye();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),ze("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=ye();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=O(t.pipe(Ae(jt)),h(e,"keyup"),o).pipe(m(()=>e.value),K());return z([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),G(1))}function pi(e,{worker$:t}){let r=new g,o=r.pipe(Z(),ie(!0));z([t.pipe(Ae(jt)),r],(i,a)=>a).pipe(ee("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ee("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),h(e.form,"reset").pipe(W(o)).subscribe(()=>e.focus());let n=R("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),ls(e,{worker$:t}).pipe(w(i=>r.next(i)),_(()=>r.complete()),m(i=>$({ref:e},i)),G(1))}function li(e,{worker$:t,query$:r}){let o=new g,n=on(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=R(":scope > :first-child",e),s=R(":scope > :last-child",e);ze("search").subscribe(l=>s.setAttribute("role",l?"list":"presentation")),o.pipe(re(r),Wr(t.pipe(Ae(jt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?Ee("search.result.none"):Ee("search.result.placeholder");break;case 1:a.textContent=Ee("search.result.one");break;default:let u=sr(l.length);a.textContent=Ee("search.result.other",u)}});let p=o.pipe(w(()=>s.innerHTML=""),v(({items:l})=>O(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Be(4),Vr(n),v(([f])=>f)))),m(Mn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(ne(l=>{let f=fe("details",l);return typeof f=="undefined"?S:h(f,"toggle").pipe(W(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(w(l=>o.next(l)),_(()=>o.complete()),m(l=>$({ref:e},l)))}function ms(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=ye();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function mi(e,t){let r=new g,o=r.pipe(Z(),ie(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(W(o)).subscribe(n=>n.preventDefault()),ms(e,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))}function fi(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=O(h(n,"keydown"),h(n,"focus")).pipe(ve(se),m(()=>n.value),K());return o.pipe(He(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(w(s=>o.next(s)),_(()=>o.complete()),m(()=>({ref:e})))}function ui(e,{index$:t,keyboard$:r}){let o=xe();try{let n=ai(o.search,t),i=Se("search-query",e),a=Se("search-result",e);h(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Ie();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of P(":first-child [href]",a)){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()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...P(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Ie()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=pi(i,{worker$:n});return O(s,li(a,{worker$:n,query$:s})).pipe(Re(...ae("search-share",e).map(p=>mi(p,{query$:s})),...ae("search-suggest",e).map(p=>fi(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ye}}function di(e,{index$:t,location$:r}){return z([t,r.pipe(Q(ye()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>ii(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=x("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function fs(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Zr(e,o){var n=o,{header$:t}=n,r=so(n,["header$"]);let i=R(".md-sidebar__scrollwrap",e),{y:a}=Ve(i);return C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=s.pipe(Me(0,me));return c.pipe(re(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of P(".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}=ce(f);f.scrollTo({top:u-d/2})}}}),ue(P("label[tabindex]",e)).pipe(ne(l=>h(l,"click").pipe(ve(se),m(()=>l),W(p)))).subscribe(l=>{let f=R(`[id="${l.htmlFor}"]`);R(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),fs(e,r).pipe(w(l=>s.next(l)),_(()=>s.complete()),m(l=>$({ref:e},l)))})}function hi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return st(je(`${r}/releases/latest`).pipe(de(()=>S),m(o=>({version:o.tag_name})),De({})),je(r).pipe(de(()=>S),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return je(r).pipe(m(o=>({repositories:o.public_repos})),De({}))}}function bi(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return st(je(`${r}/releases/permalink/latest`).pipe(de(()=>S),m(({tag_name:o})=>({version:o})),De({})),je(r).pipe(de(()=>S),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}function vi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return hi(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return bi(r,o)}return S}var us;function ds(e){return us||(us=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return S}return vi(e.href).pipe(w(o=>__md_set("__source",o,sessionStorage)))}).pipe(de(()=>S),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),G(1)))}function gi(e){let t=R(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(_n(o)),t.classList.add("md-source__repository--active")}),ds(e).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function hs(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ee("hidden"))}function yi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(B("navigation.tabs.sticky")?I({hidden:!1}):hs(e,t)).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function bs(e,{viewport$:t,header$:r}){let o=new Map,n=P(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(ee("height"),m(({height:s})=>{let p=Se("main"),c=R(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(ee("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.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 c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),He(i),v(([p,c])=>t.pipe(Fr(([l,f],{offset:{y:u},size:d})=>{let y=u+d.height>=Math.floor(s.height);for(;f.length;){let[,L]=f[0];if(L-c=u&&!y)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Be(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(Z(),ie(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),B("toc.follow")){let s=O(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),He(o.pipe(ve(se))),re(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2,behavior:c})}}})}return B("navigation.tracking")&&t.pipe(W(a),ee("offset"),_e(250),Ce(1),W(n.pipe(Ce(1))),ct({delay:250}),re(i)).subscribe(([,{prev:s}])=>{let p=ye(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),bs(e,{viewport$:t,header$:r}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function vs(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Be(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return z([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),W(o.pipe(Ce(1))),ie(!0),ct({delay:250}),m(a=>({hidden:a})))}function Ei(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(W(a),ee("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),h(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),vs(e,{viewport$:t,main$:o,target$:n}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))}function wi({document$:e,viewport$:t}){e.pipe(v(()=>P(".md-ellipsis")),ne(r=>tt(r).pipe(W(e.pipe(Ce(1))),b(o=>o),m(()=>r),Te(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,B("content.tooltips")?mt(n,{viewport$:t}).pipe(W(e.pipe(Ce(1))),_(()=>n.removeAttribute("title"))):S})).subscribe(),B("content.tooltips")&&e.pipe(v(()=>P(".md-status")),ne(r=>mt(r,{viewport$:t}))).subscribe()}function Ti({document$:e,tablet$:t}){e.pipe(v(()=>P(".md-toggle--indeterminate")),w(r=>{r.indeterminate=!0,r.checked=!1}),ne(r=>h(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),re(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function gs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Si({document$:e}){e.pipe(v(()=>P("[data-md-scrollfix]")),w(t=>t.removeAttribute("data-md-scrollfix")),b(gs),ne(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 Oi({viewport$:e,tablet$:t}){z([ze("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),re(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 ys(){return location.protocol==="file:"?Tt(`${new URL("search/search_index.js",eo.base)}`).pipe(m(()=>__index),G(1)):je(new URL("search/search_index.json",eo.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Go(),Ut=sn(),Lt=ln(Ut),to=an(),Oe=gn(),hr=Pt("(min-width: 960px)"),Mi=Pt("(min-width: 1220px)"),_i=mn(),eo=xe(),Ai=document.forms.namedItem("search")?ys():Ye,ro=new g;Zn({alert$:ro});var oo=new g;B("navigation.instant")&&oi({location$:Ut,viewport$:Oe,progress$:oo}).subscribe(ot);var Li;((Li=eo.version)==null?void 0:Li.provider)==="mike"&&ci({document$:ot});O(Ut,Lt).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});to.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&<(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&<(r);break;case"Enter":let o=Ie();o instanceof HTMLLabelElement&&o.click()}});wi({viewport$:Oe,document$:ot});Ti({document$:ot,tablet$:hr});Si({document$:ot});Oi({viewport$:Oe,tablet$:hr});var rt=Kn(Se("header"),{viewport$:Oe}),Ft=ot.pipe(m(()=>Se("main")),v(e=>Gn(e,{viewport$:Oe,header$:rt})),G(1)),xs=O(...ae("consent").map(e=>En(e,{target$:Lt})),...ae("dialog").map(e=>qn(e,{alert$:ro})),...ae("header").map(e=>Yn(e,{viewport$:Oe,header$:rt,main$:Ft})),...ae("palette").map(e=>Jn(e)),...ae("progress").map(e=>Xn(e,{progress$:oo})),...ae("search").map(e=>ui(e,{index$:Ai,keyboard$:to})),...ae("source").map(e=>gi(e))),Es=C(()=>O(...ae("announce").map(e=>xn(e)),...ae("content").map(e=>zn(e,{viewport$:Oe,target$:Lt,print$:_i})),...ae("content").map(e=>B("search.highlight")?di(e,{index$:Ai,location$:Ut}):S),...ae("header-title").map(e=>Bn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Nr(Mi,()=>Zr(e,{viewport$:Oe,header$:rt,main$:Ft})):Nr(hr,()=>Zr(e,{viewport$:Oe,header$:rt,main$:Ft}))),...ae("tabs").map(e=>yi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>xi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Lt})),...ae("top").map(e=>Ei(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Lt})))),Ci=ot.pipe(v(()=>Es),Re(xs),G(1));Ci.subscribe();window.document$=ot;window.location$=Ut;window.target$=Lt;window.keyboard$=to;window.viewport$=Oe;window.tablet$=hr;window.screen$=Mi;window.print$=_i;window.alert$=ro;window.progress$=oo;window.component$=Ci;})(); +//# sourceMappingURL=bundle.525ec568.min.js.map + diff --git a/assets/javascripts/bundle.525ec568.min.js.map b/assets/javascripts/bundle.525ec568.min.js.map new file mode 100644 index 00000000..ef5d8d34 --- /dev/null +++ b/assets/javascripts/bundle.525ec568.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "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/BehaviorSubject.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/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.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/debounce.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/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/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/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/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/tooltip2/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/tooltip/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/findurl/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 * 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 * 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 * Copyright (c) 2016-2024 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({ viewport$, 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", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\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 { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\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 { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\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\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\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